Path: blob/main/sys/crypto/openssl/i386/poly1305-x86.S
39483 views
/* Do not modify. This file is auto-generated from poly1305-x86.pl. */1#ifdef PIC2.text3.align 644.globl poly1305_init5.type poly1305_init,@function6.align 167poly1305_init:8.L_poly1305_init_begin:9#ifdef __CET__1011.byte 243,15,30,25112#endif1314pushl %ebp15pushl %ebx16pushl %esi17pushl %edi18movl 20(%esp),%edi19movl 24(%esp),%esi20movl 28(%esp),%ebp21xorl %eax,%eax22movl %eax,(%edi)23movl %eax,4(%edi)24movl %eax,8(%edi)25movl %eax,12(%edi)26movl %eax,16(%edi)27movl %eax,20(%edi)28cmpl $0,%esi29je .L000nokey30call .L001pic_point31.L001pic_point:32popl %ebx33leal poly1305_blocks-.L001pic_point(%ebx),%eax34leal poly1305_emit-.L001pic_point(%ebx),%edx35leal OPENSSL_ia32cap_P-.L001pic_point(%ebx),%edi36movl (%edi),%ecx37andl $83886080,%ecx38cmpl $83886080,%ecx39jne .L002no_sse240leal _poly1305_blocks_sse2-.L001pic_point(%ebx),%eax41leal _poly1305_emit_sse2-.L001pic_point(%ebx),%edx42movl 8(%edi),%ecx43testl $32,%ecx44jz .L002no_sse245leal _poly1305_blocks_avx2-.L001pic_point(%ebx),%eax46.L002no_sse2:47movl 20(%esp),%edi48movl %eax,(%ebp)49movl %edx,4(%ebp)50movl (%esi),%eax51movl 4(%esi),%ebx52movl 8(%esi),%ecx53movl 12(%esi),%edx54andl $268435455,%eax55andl $268435452,%ebx56andl $268435452,%ecx57andl $268435452,%edx58movl %eax,24(%edi)59movl %ebx,28(%edi)60movl %ecx,32(%edi)61movl %edx,36(%edi)62movl $1,%eax63.L000nokey:64popl %edi65popl %esi66popl %ebx67popl %ebp68ret69.size poly1305_init,.-.L_poly1305_init_begin70.globl poly1305_blocks71.type poly1305_blocks,@function72.align 1673poly1305_blocks:74.L_poly1305_blocks_begin:75#ifdef __CET__7677.byte 243,15,30,25178#endif7980pushl %ebp81pushl %ebx82pushl %esi83pushl %edi84movl 20(%esp),%edi85movl 24(%esp),%esi86movl 28(%esp),%ecx87.Lenter_blocks:88andl $-15,%ecx89jz .L003nodata90subl $64,%esp91movl 24(%edi),%eax92movl 28(%edi),%ebx93leal (%esi,%ecx,1),%ebp94movl 32(%edi),%ecx95movl 36(%edi),%edx96movl %ebp,92(%esp)97movl %esi,%ebp98movl %eax,36(%esp)99movl %ebx,%eax100shrl $2,%eax101movl %ebx,40(%esp)102addl %ebx,%eax103movl %ecx,%ebx104shrl $2,%ebx105movl %ecx,44(%esp)106addl %ecx,%ebx107movl %edx,%ecx108shrl $2,%ecx109movl %edx,48(%esp)110addl %edx,%ecx111movl %eax,52(%esp)112movl %ebx,56(%esp)113movl %ecx,60(%esp)114movl (%edi),%eax115movl 4(%edi),%ebx116movl 8(%edi),%ecx117movl 12(%edi),%esi118movl 16(%edi),%edi119jmp .L004loop120.align 32121.L004loop:122addl (%ebp),%eax123adcl 4(%ebp),%ebx124adcl 8(%ebp),%ecx125adcl 12(%ebp),%esi126leal 16(%ebp),%ebp127adcl 96(%esp),%edi128movl %eax,(%esp)129movl %esi,12(%esp)130mull 36(%esp)131movl %edi,16(%esp)132movl %eax,%edi133movl %ebx,%eax134movl %edx,%esi135mull 60(%esp)136addl %eax,%edi137movl %ecx,%eax138adcl %edx,%esi139mull 56(%esp)140addl %eax,%edi141movl 12(%esp),%eax142adcl %edx,%esi143mull 52(%esp)144addl %eax,%edi145movl (%esp),%eax146adcl %edx,%esi147mull 40(%esp)148movl %edi,20(%esp)149xorl %edi,%edi150addl %eax,%esi151movl %ebx,%eax152adcl %edx,%edi153mull 36(%esp)154addl %eax,%esi155movl %ecx,%eax156adcl %edx,%edi157mull 60(%esp)158addl %eax,%esi159movl 12(%esp),%eax160adcl %edx,%edi161mull 56(%esp)162addl %eax,%esi163movl 16(%esp),%eax164adcl %edx,%edi165imull 52(%esp),%eax166addl %eax,%esi167movl (%esp),%eax168adcl $0,%edi169mull 44(%esp)170movl %esi,24(%esp)171xorl %esi,%esi172addl %eax,%edi173movl %ebx,%eax174adcl %edx,%esi175mull 40(%esp)176addl %eax,%edi177movl %ecx,%eax178adcl %edx,%esi179mull 36(%esp)180addl %eax,%edi181movl 12(%esp),%eax182adcl %edx,%esi183mull 60(%esp)184addl %eax,%edi185movl 16(%esp),%eax186adcl %edx,%esi187imull 56(%esp),%eax188addl %eax,%edi189movl (%esp),%eax190adcl $0,%esi191mull 48(%esp)192movl %edi,28(%esp)193xorl %edi,%edi194addl %eax,%esi195movl %ebx,%eax196adcl %edx,%edi197mull 44(%esp)198addl %eax,%esi199movl %ecx,%eax200adcl %edx,%edi201mull 40(%esp)202addl %eax,%esi203movl 12(%esp),%eax204adcl %edx,%edi205mull 36(%esp)206addl %eax,%esi207movl 16(%esp),%ecx208adcl %edx,%edi209movl %ecx,%edx210imull 60(%esp),%ecx211addl %ecx,%esi212movl 20(%esp),%eax213adcl $0,%edi214imull 36(%esp),%edx215addl %edi,%edx216movl 24(%esp),%ebx217movl 28(%esp),%ecx218movl %edx,%edi219shrl $2,%edx220andl $3,%edi221leal (%edx,%edx,4),%edx222addl %edx,%eax223adcl $0,%ebx224adcl $0,%ecx225adcl $0,%esi226adcl $0,%edi227cmpl 92(%esp),%ebp228jne .L004loop229movl 84(%esp),%edx230addl $64,%esp231movl %eax,(%edx)232movl %ebx,4(%edx)233movl %ecx,8(%edx)234movl %esi,12(%edx)235movl %edi,16(%edx)236.L003nodata:237popl %edi238popl %esi239popl %ebx240popl %ebp241ret242.size poly1305_blocks,.-.L_poly1305_blocks_begin243.globl poly1305_emit244.type poly1305_emit,@function245.align 16246poly1305_emit:247.L_poly1305_emit_begin:248#ifdef __CET__249250.byte 243,15,30,251251#endif252253pushl %ebp254pushl %ebx255pushl %esi256pushl %edi257movl 20(%esp),%ebp258.Lenter_emit:259movl 24(%esp),%edi260movl (%ebp),%eax261movl 4(%ebp),%ebx262movl 8(%ebp),%ecx263movl 12(%ebp),%edx264movl 16(%ebp),%esi265addl $5,%eax266adcl $0,%ebx267adcl $0,%ecx268adcl $0,%edx269adcl $0,%esi270shrl $2,%esi271negl %esi272andl %esi,%eax273andl %esi,%ebx274andl %esi,%ecx275andl %esi,%edx276movl %eax,(%edi)277movl %ebx,4(%edi)278movl %ecx,8(%edi)279movl %edx,12(%edi)280notl %esi281movl (%ebp),%eax282movl 4(%ebp),%ebx283movl 8(%ebp),%ecx284movl 12(%ebp),%edx285movl 28(%esp),%ebp286andl %esi,%eax287andl %esi,%ebx288andl %esi,%ecx289andl %esi,%edx290orl (%edi),%eax291orl 4(%edi),%ebx292orl 8(%edi),%ecx293orl 12(%edi),%edx294addl (%ebp),%eax295adcl 4(%ebp),%ebx296adcl 8(%ebp),%ecx297adcl 12(%ebp),%edx298movl %eax,(%edi)299movl %ebx,4(%edi)300movl %ecx,8(%edi)301movl %edx,12(%edi)302popl %edi303popl %esi304popl %ebx305popl %ebp306ret307.size poly1305_emit,.-.L_poly1305_emit_begin308.align 32309.type _poly1305_init_sse2,@function310.align 16311_poly1305_init_sse2:312#ifdef __CET__313314.byte 243,15,30,251315#endif316317movdqu 24(%edi),%xmm4318leal 48(%edi),%edi319movl %esp,%ebp320subl $224,%esp321andl $-16,%esp322movq 64(%ebx),%xmm7323movdqa %xmm4,%xmm0324movdqa %xmm4,%xmm1325movdqa %xmm4,%xmm2326pand %xmm7,%xmm0327psrlq $26,%xmm1328psrldq $6,%xmm2329pand %xmm7,%xmm1330movdqa %xmm2,%xmm3331psrlq $4,%xmm2332psrlq $30,%xmm3333pand %xmm7,%xmm2334pand %xmm7,%xmm3335psrldq $13,%xmm4336leal 144(%esp),%edx337movl $2,%ecx338.L005square:339movdqa %xmm0,(%esp)340movdqa %xmm1,16(%esp)341movdqa %xmm2,32(%esp)342movdqa %xmm3,48(%esp)343movdqa %xmm4,64(%esp)344movdqa %xmm1,%xmm6345movdqa %xmm2,%xmm5346pslld $2,%xmm6347pslld $2,%xmm5348paddd %xmm1,%xmm6349paddd %xmm2,%xmm5350movdqa %xmm6,80(%esp)351movdqa %xmm5,96(%esp)352movdqa %xmm3,%xmm6353movdqa %xmm4,%xmm5354pslld $2,%xmm6355pslld $2,%xmm5356paddd %xmm3,%xmm6357paddd %xmm4,%xmm5358movdqa %xmm6,112(%esp)359movdqa %xmm5,128(%esp)360pshufd $68,%xmm0,%xmm6361movdqa %xmm1,%xmm5362pshufd $68,%xmm1,%xmm1363pshufd $68,%xmm2,%xmm2364pshufd $68,%xmm3,%xmm3365pshufd $68,%xmm4,%xmm4366movdqa %xmm6,(%edx)367movdqa %xmm1,16(%edx)368movdqa %xmm2,32(%edx)369movdqa %xmm3,48(%edx)370movdqa %xmm4,64(%edx)371pmuludq %xmm0,%xmm4372pmuludq %xmm0,%xmm3373pmuludq %xmm0,%xmm2374pmuludq %xmm0,%xmm1375pmuludq %xmm6,%xmm0376movdqa %xmm5,%xmm6377pmuludq 48(%edx),%xmm5378movdqa %xmm6,%xmm7379pmuludq 32(%edx),%xmm6380paddq %xmm5,%xmm4381movdqa %xmm7,%xmm5382pmuludq 16(%edx),%xmm7383paddq %xmm6,%xmm3384movdqa 80(%esp),%xmm6385pmuludq (%edx),%xmm5386paddq %xmm7,%xmm2387pmuludq 64(%edx),%xmm6388movdqa 32(%esp),%xmm7389paddq %xmm5,%xmm1390movdqa %xmm7,%xmm5391pmuludq 32(%edx),%xmm7392paddq %xmm6,%xmm0393movdqa %xmm5,%xmm6394pmuludq 16(%edx),%xmm5395paddq %xmm7,%xmm4396movdqa 96(%esp),%xmm7397pmuludq (%edx),%xmm6398paddq %xmm5,%xmm3399movdqa %xmm7,%xmm5400pmuludq 64(%edx),%xmm7401paddq %xmm6,%xmm2402pmuludq 48(%edx),%xmm5403movdqa 48(%esp),%xmm6404paddq %xmm7,%xmm1405movdqa %xmm6,%xmm7406pmuludq 16(%edx),%xmm6407paddq %xmm5,%xmm0408movdqa 112(%esp),%xmm5409pmuludq (%edx),%xmm7410paddq %xmm6,%xmm4411movdqa %xmm5,%xmm6412pmuludq 64(%edx),%xmm5413paddq %xmm7,%xmm3414movdqa %xmm6,%xmm7415pmuludq 48(%edx),%xmm6416paddq %xmm5,%xmm2417pmuludq 32(%edx),%xmm7418movdqa 64(%esp),%xmm5419paddq %xmm6,%xmm1420movdqa 128(%esp),%xmm6421pmuludq (%edx),%xmm5422paddq %xmm7,%xmm0423movdqa %xmm6,%xmm7424pmuludq 64(%edx),%xmm6425paddq %xmm5,%xmm4426movdqa %xmm7,%xmm5427pmuludq 16(%edx),%xmm7428paddq %xmm6,%xmm3429movdqa %xmm5,%xmm6430pmuludq 32(%edx),%xmm5431paddq %xmm7,%xmm0432pmuludq 48(%edx),%xmm6433movdqa 64(%ebx),%xmm7434paddq %xmm5,%xmm1435paddq %xmm6,%xmm2436movdqa %xmm3,%xmm5437pand %xmm7,%xmm3438psrlq $26,%xmm5439paddq %xmm4,%xmm5440movdqa %xmm0,%xmm6441pand %xmm7,%xmm0442psrlq $26,%xmm6443movdqa %xmm5,%xmm4444paddq %xmm1,%xmm6445psrlq $26,%xmm5446pand %xmm7,%xmm4447movdqa %xmm6,%xmm1448psrlq $26,%xmm6449paddd %xmm5,%xmm0450psllq $2,%xmm5451paddq %xmm2,%xmm6452paddq %xmm0,%xmm5453pand %xmm7,%xmm1454movdqa %xmm6,%xmm2455psrlq $26,%xmm6456pand %xmm7,%xmm2457paddd %xmm3,%xmm6458movdqa %xmm5,%xmm0459psrlq $26,%xmm5460movdqa %xmm6,%xmm3461psrlq $26,%xmm6462pand %xmm7,%xmm0463paddd %xmm5,%xmm1464pand %xmm7,%xmm3465paddd %xmm6,%xmm4466decl %ecx467jz .L006square_break468punpcklqdq (%esp),%xmm0469punpcklqdq 16(%esp),%xmm1470punpcklqdq 32(%esp),%xmm2471punpcklqdq 48(%esp),%xmm3472punpcklqdq 64(%esp),%xmm4473jmp .L005square474.L006square_break:475psllq $32,%xmm0476psllq $32,%xmm1477psllq $32,%xmm2478psllq $32,%xmm3479psllq $32,%xmm4480por (%esp),%xmm0481por 16(%esp),%xmm1482por 32(%esp),%xmm2483por 48(%esp),%xmm3484por 64(%esp),%xmm4485pshufd $141,%xmm0,%xmm0486pshufd $141,%xmm1,%xmm1487pshufd $141,%xmm2,%xmm2488pshufd $141,%xmm3,%xmm3489pshufd $141,%xmm4,%xmm4490movdqu %xmm0,(%edi)491movdqu %xmm1,16(%edi)492movdqu %xmm2,32(%edi)493movdqu %xmm3,48(%edi)494movdqu %xmm4,64(%edi)495movdqa %xmm1,%xmm6496movdqa %xmm2,%xmm5497pslld $2,%xmm6498pslld $2,%xmm5499paddd %xmm1,%xmm6500paddd %xmm2,%xmm5501movdqu %xmm6,80(%edi)502movdqu %xmm5,96(%edi)503movdqa %xmm3,%xmm6504movdqa %xmm4,%xmm5505pslld $2,%xmm6506pslld $2,%xmm5507paddd %xmm3,%xmm6508paddd %xmm4,%xmm5509movdqu %xmm6,112(%edi)510movdqu %xmm5,128(%edi)511movl %ebp,%esp512leal -48(%edi),%edi513ret514.size _poly1305_init_sse2,.-_poly1305_init_sse2515.align 32516.type _poly1305_blocks_sse2,@function517.align 16518_poly1305_blocks_sse2:519#ifdef __CET__520521.byte 243,15,30,251522#endif523524pushl %ebp525pushl %ebx526pushl %esi527pushl %edi528movl 20(%esp),%edi529movl 24(%esp),%esi530movl 28(%esp),%ecx531movl 20(%edi),%eax532andl $-16,%ecx533jz .L007nodata534cmpl $64,%ecx535jae .L008enter_sse2536testl %eax,%eax537jz .Lenter_blocks538.align 16539.L008enter_sse2:540call .L009pic_point541.L009pic_point:542popl %ebx543leal .Lconst_sse2-.L009pic_point(%ebx),%ebx544testl %eax,%eax545jnz .L010base2_26546call _poly1305_init_sse2547movl (%edi),%eax548movl 3(%edi),%ecx549movl 6(%edi),%edx550movl 9(%edi),%esi551movl 13(%edi),%ebp552movl $1,20(%edi)553shrl $2,%ecx554andl $67108863,%eax555shrl $4,%edx556andl $67108863,%ecx557shrl $6,%esi558andl $67108863,%edx559movd %eax,%xmm0560movd %ecx,%xmm1561movd %edx,%xmm2562movd %esi,%xmm3563movd %ebp,%xmm4564movl 24(%esp),%esi565movl 28(%esp),%ecx566jmp .L011base2_32567.align 16568.L010base2_26:569movd (%edi),%xmm0570movd 4(%edi),%xmm1571movd 8(%edi),%xmm2572movd 12(%edi),%xmm3573movd 16(%edi),%xmm4574movdqa 64(%ebx),%xmm7575.L011base2_32:576movl 32(%esp),%eax577movl %esp,%ebp578subl $528,%esp579andl $-16,%esp580leal 48(%edi),%edi581shll $24,%eax582testl $31,%ecx583jz .L012even584movdqu (%esi),%xmm6585leal 16(%esi),%esi586movdqa %xmm6,%xmm5587pand %xmm7,%xmm6588paddd %xmm6,%xmm0589movdqa %xmm5,%xmm6590psrlq $26,%xmm5591psrldq $6,%xmm6592pand %xmm7,%xmm5593paddd %xmm5,%xmm1594movdqa %xmm6,%xmm5595psrlq $4,%xmm6596pand %xmm7,%xmm6597paddd %xmm6,%xmm2598movdqa %xmm5,%xmm6599psrlq $30,%xmm5600pand %xmm7,%xmm5601psrldq $7,%xmm6602paddd %xmm5,%xmm3603movd %eax,%xmm5604paddd %xmm6,%xmm4605movd 12(%edi),%xmm6606paddd %xmm5,%xmm4607movdqa %xmm0,(%esp)608movdqa %xmm1,16(%esp)609movdqa %xmm2,32(%esp)610movdqa %xmm3,48(%esp)611movdqa %xmm4,64(%esp)612pmuludq %xmm6,%xmm0613pmuludq %xmm6,%xmm1614pmuludq %xmm6,%xmm2615movd 28(%edi),%xmm5616pmuludq %xmm6,%xmm3617pmuludq %xmm6,%xmm4618movdqa %xmm5,%xmm6619pmuludq 48(%esp),%xmm5620movdqa %xmm6,%xmm7621pmuludq 32(%esp),%xmm6622paddq %xmm5,%xmm4623movdqa %xmm7,%xmm5624pmuludq 16(%esp),%xmm7625paddq %xmm6,%xmm3626movd 92(%edi),%xmm6627pmuludq (%esp),%xmm5628paddq %xmm7,%xmm2629pmuludq 64(%esp),%xmm6630movd 44(%edi),%xmm7631paddq %xmm5,%xmm1632movdqa %xmm7,%xmm5633pmuludq 32(%esp),%xmm7634paddq %xmm6,%xmm0635movdqa %xmm5,%xmm6636pmuludq 16(%esp),%xmm5637paddq %xmm7,%xmm4638movd 108(%edi),%xmm7639pmuludq (%esp),%xmm6640paddq %xmm5,%xmm3641movdqa %xmm7,%xmm5642pmuludq 64(%esp),%xmm7643paddq %xmm6,%xmm2644pmuludq 48(%esp),%xmm5645movd 60(%edi),%xmm6646paddq %xmm7,%xmm1647movdqa %xmm6,%xmm7648pmuludq 16(%esp),%xmm6649paddq %xmm5,%xmm0650movd 124(%edi),%xmm5651pmuludq (%esp),%xmm7652paddq %xmm6,%xmm4653movdqa %xmm5,%xmm6654pmuludq 64(%esp),%xmm5655paddq %xmm7,%xmm3656movdqa %xmm6,%xmm7657pmuludq 48(%esp),%xmm6658paddq %xmm5,%xmm2659pmuludq 32(%esp),%xmm7660movd 76(%edi),%xmm5661paddq %xmm6,%xmm1662movd 140(%edi),%xmm6663pmuludq (%esp),%xmm5664paddq %xmm7,%xmm0665movdqa %xmm6,%xmm7666pmuludq 64(%esp),%xmm6667paddq %xmm5,%xmm4668movdqa %xmm7,%xmm5669pmuludq 16(%esp),%xmm7670paddq %xmm6,%xmm3671movdqa %xmm5,%xmm6672pmuludq 32(%esp),%xmm5673paddq %xmm7,%xmm0674pmuludq 48(%esp),%xmm6675movdqa 64(%ebx),%xmm7676paddq %xmm5,%xmm1677paddq %xmm6,%xmm2678movdqa %xmm3,%xmm5679pand %xmm7,%xmm3680psrlq $26,%xmm5681paddq %xmm4,%xmm5682movdqa %xmm0,%xmm6683pand %xmm7,%xmm0684psrlq $26,%xmm6685movdqa %xmm5,%xmm4686paddq %xmm1,%xmm6687psrlq $26,%xmm5688pand %xmm7,%xmm4689movdqa %xmm6,%xmm1690psrlq $26,%xmm6691paddd %xmm5,%xmm0692psllq $2,%xmm5693paddq %xmm2,%xmm6694paddq %xmm0,%xmm5695pand %xmm7,%xmm1696movdqa %xmm6,%xmm2697psrlq $26,%xmm6698pand %xmm7,%xmm2699paddd %xmm3,%xmm6700movdqa %xmm5,%xmm0701psrlq $26,%xmm5702movdqa %xmm6,%xmm3703psrlq $26,%xmm6704pand %xmm7,%xmm0705paddd %xmm5,%xmm1706pand %xmm7,%xmm3707paddd %xmm6,%xmm4708subl $16,%ecx709jz .L013done710.L012even:711leal 384(%esp),%edx712leal -32(%esi),%eax713subl $64,%ecx714movdqu (%edi),%xmm5715pshufd $68,%xmm5,%xmm6716cmovbl %eax,%esi717pshufd $238,%xmm5,%xmm5718movdqa %xmm6,(%edx)719leal 160(%esp),%eax720movdqu 16(%edi),%xmm6721movdqa %xmm5,-144(%edx)722pshufd $68,%xmm6,%xmm5723pshufd $238,%xmm6,%xmm6724movdqa %xmm5,16(%edx)725movdqu 32(%edi),%xmm5726movdqa %xmm6,-128(%edx)727pshufd $68,%xmm5,%xmm6728pshufd $238,%xmm5,%xmm5729movdqa %xmm6,32(%edx)730movdqu 48(%edi),%xmm6731movdqa %xmm5,-112(%edx)732pshufd $68,%xmm6,%xmm5733pshufd $238,%xmm6,%xmm6734movdqa %xmm5,48(%edx)735movdqu 64(%edi),%xmm5736movdqa %xmm6,-96(%edx)737pshufd $68,%xmm5,%xmm6738pshufd $238,%xmm5,%xmm5739movdqa %xmm6,64(%edx)740movdqu 80(%edi),%xmm6741movdqa %xmm5,-80(%edx)742pshufd $68,%xmm6,%xmm5743pshufd $238,%xmm6,%xmm6744movdqa %xmm5,80(%edx)745movdqu 96(%edi),%xmm5746movdqa %xmm6,-64(%edx)747pshufd $68,%xmm5,%xmm6748pshufd $238,%xmm5,%xmm5749movdqa %xmm6,96(%edx)750movdqu 112(%edi),%xmm6751movdqa %xmm5,-48(%edx)752pshufd $68,%xmm6,%xmm5753pshufd $238,%xmm6,%xmm6754movdqa %xmm5,112(%edx)755movdqu 128(%edi),%xmm5756movdqa %xmm6,-32(%edx)757pshufd $68,%xmm5,%xmm6758pshufd $238,%xmm5,%xmm5759movdqa %xmm6,128(%edx)760movdqa %xmm5,-16(%edx)761movdqu 32(%esi),%xmm5762movdqu 48(%esi),%xmm6763leal 32(%esi),%esi764movdqa %xmm2,112(%esp)765movdqa %xmm3,128(%esp)766movdqa %xmm4,144(%esp)767movdqa %xmm5,%xmm2768movdqa %xmm6,%xmm3769psrldq $6,%xmm2770psrldq $6,%xmm3771movdqa %xmm5,%xmm4772punpcklqdq %xmm3,%xmm2773punpckhqdq %xmm6,%xmm4774punpcklqdq %xmm6,%xmm5775movdqa %xmm2,%xmm3776psrlq $4,%xmm2777psrlq $30,%xmm3778movdqa %xmm5,%xmm6779psrlq $40,%xmm4780psrlq $26,%xmm6781pand %xmm7,%xmm5782pand %xmm7,%xmm6783pand %xmm7,%xmm2784pand %xmm7,%xmm3785por (%ebx),%xmm4786movdqa %xmm0,80(%esp)787movdqa %xmm1,96(%esp)788jbe .L014skip_loop789jmp .L015loop790.align 32791.L015loop:792movdqa -144(%edx),%xmm7793movdqa %xmm6,16(%eax)794movdqa %xmm2,32(%eax)795movdqa %xmm3,48(%eax)796movdqa %xmm4,64(%eax)797movdqa %xmm5,%xmm1798pmuludq %xmm7,%xmm5799movdqa %xmm6,%xmm0800pmuludq %xmm7,%xmm6801pmuludq %xmm7,%xmm2802pmuludq %xmm7,%xmm3803pmuludq %xmm7,%xmm4804pmuludq -16(%edx),%xmm0805movdqa %xmm1,%xmm7806pmuludq -128(%edx),%xmm1807paddq %xmm5,%xmm0808movdqa %xmm7,%xmm5809pmuludq -112(%edx),%xmm7810paddq %xmm6,%xmm1811movdqa %xmm5,%xmm6812pmuludq -96(%edx),%xmm5813paddq %xmm7,%xmm2814movdqa 16(%eax),%xmm7815pmuludq -80(%edx),%xmm6816paddq %xmm5,%xmm3817movdqa %xmm7,%xmm5818pmuludq -128(%edx),%xmm7819paddq %xmm6,%xmm4820movdqa %xmm5,%xmm6821pmuludq -112(%edx),%xmm5822paddq %xmm7,%xmm2823movdqa 32(%eax),%xmm7824pmuludq -96(%edx),%xmm6825paddq %xmm5,%xmm3826movdqa %xmm7,%xmm5827pmuludq -32(%edx),%xmm7828paddq %xmm6,%xmm4829movdqa %xmm5,%xmm6830pmuludq -16(%edx),%xmm5831paddq %xmm7,%xmm0832movdqa %xmm6,%xmm7833pmuludq -128(%edx),%xmm6834paddq %xmm5,%xmm1835movdqa 48(%eax),%xmm5836pmuludq -112(%edx),%xmm7837paddq %xmm6,%xmm3838movdqa %xmm5,%xmm6839pmuludq -48(%edx),%xmm5840paddq %xmm7,%xmm4841movdqa %xmm6,%xmm7842pmuludq -32(%edx),%xmm6843paddq %xmm5,%xmm0844movdqa %xmm7,%xmm5845pmuludq -16(%edx),%xmm7846paddq %xmm6,%xmm1847movdqa 64(%eax),%xmm6848pmuludq -128(%edx),%xmm5849paddq %xmm7,%xmm2850movdqa %xmm6,%xmm7851pmuludq -16(%edx),%xmm6852paddq %xmm5,%xmm4853movdqa %xmm7,%xmm5854pmuludq -64(%edx),%xmm7855paddq %xmm6,%xmm3856movdqa %xmm5,%xmm6857pmuludq -48(%edx),%xmm5858paddq %xmm7,%xmm0859movdqa 64(%ebx),%xmm7860pmuludq -32(%edx),%xmm6861paddq %xmm5,%xmm1862paddq %xmm6,%xmm2863movdqu -32(%esi),%xmm5864movdqu -16(%esi),%xmm6865leal 32(%esi),%esi866movdqa %xmm2,32(%esp)867movdqa %xmm3,48(%esp)868movdqa %xmm4,64(%esp)869movdqa %xmm5,%xmm2870movdqa %xmm6,%xmm3871psrldq $6,%xmm2872psrldq $6,%xmm3873movdqa %xmm5,%xmm4874punpcklqdq %xmm3,%xmm2875punpckhqdq %xmm6,%xmm4876punpcklqdq %xmm6,%xmm5877movdqa %xmm2,%xmm3878psrlq $4,%xmm2879psrlq $30,%xmm3880movdqa %xmm5,%xmm6881psrlq $40,%xmm4882psrlq $26,%xmm6883pand %xmm7,%xmm5884pand %xmm7,%xmm6885pand %xmm7,%xmm2886pand %xmm7,%xmm3887por (%ebx),%xmm4888leal -32(%esi),%eax889subl $64,%ecx890paddd 80(%esp),%xmm5891paddd 96(%esp),%xmm6892paddd 112(%esp),%xmm2893paddd 128(%esp),%xmm3894paddd 144(%esp),%xmm4895cmovbl %eax,%esi896leal 160(%esp),%eax897movdqa (%edx),%xmm7898movdqa %xmm1,16(%esp)899movdqa %xmm6,16(%eax)900movdqa %xmm2,32(%eax)901movdqa %xmm3,48(%eax)902movdqa %xmm4,64(%eax)903movdqa %xmm5,%xmm1904pmuludq %xmm7,%xmm5905paddq %xmm0,%xmm5906movdqa %xmm6,%xmm0907pmuludq %xmm7,%xmm6908pmuludq %xmm7,%xmm2909pmuludq %xmm7,%xmm3910pmuludq %xmm7,%xmm4911paddq 16(%esp),%xmm6912paddq 32(%esp),%xmm2913paddq 48(%esp),%xmm3914paddq 64(%esp),%xmm4915pmuludq 128(%edx),%xmm0916movdqa %xmm1,%xmm7917pmuludq 16(%edx),%xmm1918paddq %xmm5,%xmm0919movdqa %xmm7,%xmm5920pmuludq 32(%edx),%xmm7921paddq %xmm6,%xmm1922movdqa %xmm5,%xmm6923pmuludq 48(%edx),%xmm5924paddq %xmm7,%xmm2925movdqa 16(%eax),%xmm7926pmuludq 64(%edx),%xmm6927paddq %xmm5,%xmm3928movdqa %xmm7,%xmm5929pmuludq 16(%edx),%xmm7930paddq %xmm6,%xmm4931movdqa %xmm5,%xmm6932pmuludq 32(%edx),%xmm5933paddq %xmm7,%xmm2934movdqa 32(%eax),%xmm7935pmuludq 48(%edx),%xmm6936paddq %xmm5,%xmm3937movdqa %xmm7,%xmm5938pmuludq 112(%edx),%xmm7939paddq %xmm6,%xmm4940movdqa %xmm5,%xmm6941pmuludq 128(%edx),%xmm5942paddq %xmm7,%xmm0943movdqa %xmm6,%xmm7944pmuludq 16(%edx),%xmm6945paddq %xmm5,%xmm1946movdqa 48(%eax),%xmm5947pmuludq 32(%edx),%xmm7948paddq %xmm6,%xmm3949movdqa %xmm5,%xmm6950pmuludq 96(%edx),%xmm5951paddq %xmm7,%xmm4952movdqa %xmm6,%xmm7953pmuludq 112(%edx),%xmm6954paddq %xmm5,%xmm0955movdqa %xmm7,%xmm5956pmuludq 128(%edx),%xmm7957paddq %xmm6,%xmm1958movdqa 64(%eax),%xmm6959pmuludq 16(%edx),%xmm5960paddq %xmm7,%xmm2961movdqa %xmm6,%xmm7962pmuludq 128(%edx),%xmm6963paddq %xmm5,%xmm4964movdqa %xmm7,%xmm5965pmuludq 80(%edx),%xmm7966paddq %xmm6,%xmm3967movdqa %xmm5,%xmm6968pmuludq 96(%edx),%xmm5969paddq %xmm7,%xmm0970movdqa 64(%ebx),%xmm7971pmuludq 112(%edx),%xmm6972paddq %xmm5,%xmm1973paddq %xmm6,%xmm2974movdqa %xmm3,%xmm5975pand %xmm7,%xmm3976psrlq $26,%xmm5977paddq %xmm4,%xmm5978movdqa %xmm0,%xmm6979pand %xmm7,%xmm0980psrlq $26,%xmm6981movdqa %xmm5,%xmm4982paddq %xmm1,%xmm6983psrlq $26,%xmm5984pand %xmm7,%xmm4985movdqa %xmm6,%xmm1986psrlq $26,%xmm6987paddd %xmm5,%xmm0988psllq $2,%xmm5989paddq %xmm2,%xmm6990paddq %xmm0,%xmm5991pand %xmm7,%xmm1992movdqa %xmm6,%xmm2993psrlq $26,%xmm6994pand %xmm7,%xmm2995paddd %xmm3,%xmm6996movdqa %xmm5,%xmm0997psrlq $26,%xmm5998movdqa %xmm6,%xmm3999psrlq $26,%xmm61000pand %xmm7,%xmm01001paddd %xmm5,%xmm11002pand %xmm7,%xmm31003paddd %xmm6,%xmm41004movdqu 32(%esi),%xmm51005movdqu 48(%esi),%xmm61006leal 32(%esi),%esi1007movdqa %xmm2,112(%esp)1008movdqa %xmm3,128(%esp)1009movdqa %xmm4,144(%esp)1010movdqa %xmm5,%xmm21011movdqa %xmm6,%xmm31012psrldq $6,%xmm21013psrldq $6,%xmm31014movdqa %xmm5,%xmm41015punpcklqdq %xmm3,%xmm21016punpckhqdq %xmm6,%xmm41017punpcklqdq %xmm6,%xmm51018movdqa %xmm2,%xmm31019psrlq $4,%xmm21020psrlq $30,%xmm31021movdqa %xmm5,%xmm61022psrlq $40,%xmm41023psrlq $26,%xmm61024pand %xmm7,%xmm51025pand %xmm7,%xmm61026pand %xmm7,%xmm21027pand %xmm7,%xmm31028por (%ebx),%xmm41029movdqa %xmm0,80(%esp)1030movdqa %xmm1,96(%esp)1031ja .L015loop1032.L014skip_loop:1033pshufd $16,-144(%edx),%xmm71034addl $32,%ecx1035jnz .L016long_tail1036paddd %xmm0,%xmm51037paddd %xmm1,%xmm61038paddd 112(%esp),%xmm21039paddd 128(%esp),%xmm31040paddd 144(%esp),%xmm41041.L016long_tail:1042movdqa %xmm5,(%eax)1043movdqa %xmm6,16(%eax)1044movdqa %xmm2,32(%eax)1045movdqa %xmm3,48(%eax)1046movdqa %xmm4,64(%eax)1047pmuludq %xmm7,%xmm51048pmuludq %xmm7,%xmm61049pmuludq %xmm7,%xmm21050movdqa %xmm5,%xmm01051pshufd $16,-128(%edx),%xmm51052pmuludq %xmm7,%xmm31053movdqa %xmm6,%xmm11054pmuludq %xmm7,%xmm41055movdqa %xmm5,%xmm61056pmuludq 48(%eax),%xmm51057movdqa %xmm6,%xmm71058pmuludq 32(%eax),%xmm61059paddq %xmm5,%xmm41060movdqa %xmm7,%xmm51061pmuludq 16(%eax),%xmm71062paddq %xmm6,%xmm31063pshufd $16,-64(%edx),%xmm61064pmuludq (%eax),%xmm51065paddq %xmm7,%xmm21066pmuludq 64(%eax),%xmm61067pshufd $16,-112(%edx),%xmm71068paddq %xmm5,%xmm11069movdqa %xmm7,%xmm51070pmuludq 32(%eax),%xmm71071paddq %xmm6,%xmm01072movdqa %xmm5,%xmm61073pmuludq 16(%eax),%xmm51074paddq %xmm7,%xmm41075pshufd $16,-48(%edx),%xmm71076pmuludq (%eax),%xmm61077paddq %xmm5,%xmm31078movdqa %xmm7,%xmm51079pmuludq 64(%eax),%xmm71080paddq %xmm6,%xmm21081pmuludq 48(%eax),%xmm51082pshufd $16,-96(%edx),%xmm61083paddq %xmm7,%xmm11084movdqa %xmm6,%xmm71085pmuludq 16(%eax),%xmm61086paddq %xmm5,%xmm01087pshufd $16,-32(%edx),%xmm51088pmuludq (%eax),%xmm71089paddq %xmm6,%xmm41090movdqa %xmm5,%xmm61091pmuludq 64(%eax),%xmm51092paddq %xmm7,%xmm31093movdqa %xmm6,%xmm71094pmuludq 48(%eax),%xmm61095paddq %xmm5,%xmm21096pmuludq 32(%eax),%xmm71097pshufd $16,-80(%edx),%xmm51098paddq %xmm6,%xmm11099pshufd $16,-16(%edx),%xmm61100pmuludq (%eax),%xmm51101paddq %xmm7,%xmm01102movdqa %xmm6,%xmm71103pmuludq 64(%eax),%xmm61104paddq %xmm5,%xmm41105movdqa %xmm7,%xmm51106pmuludq 16(%eax),%xmm71107paddq %xmm6,%xmm31108movdqa %xmm5,%xmm61109pmuludq 32(%eax),%xmm51110paddq %xmm7,%xmm01111pmuludq 48(%eax),%xmm61112movdqa 64(%ebx),%xmm71113paddq %xmm5,%xmm11114paddq %xmm6,%xmm21115jz .L017short_tail1116movdqu -32(%esi),%xmm51117movdqu -16(%esi),%xmm61118leal 32(%esi),%esi1119movdqa %xmm2,32(%esp)1120movdqa %xmm3,48(%esp)1121movdqa %xmm4,64(%esp)1122movdqa %xmm5,%xmm21123movdqa %xmm6,%xmm31124psrldq $6,%xmm21125psrldq $6,%xmm31126movdqa %xmm5,%xmm41127punpcklqdq %xmm3,%xmm21128punpckhqdq %xmm6,%xmm41129punpcklqdq %xmm6,%xmm51130movdqa %xmm2,%xmm31131psrlq $4,%xmm21132psrlq $30,%xmm31133movdqa %xmm5,%xmm61134psrlq $40,%xmm41135psrlq $26,%xmm61136pand %xmm7,%xmm51137pand %xmm7,%xmm61138pand %xmm7,%xmm21139pand %xmm7,%xmm31140por (%ebx),%xmm41141pshufd $16,(%edx),%xmm71142paddd 80(%esp),%xmm51143paddd 96(%esp),%xmm61144paddd 112(%esp),%xmm21145paddd 128(%esp),%xmm31146paddd 144(%esp),%xmm41147movdqa %xmm5,(%esp)1148pmuludq %xmm7,%xmm51149movdqa %xmm6,16(%esp)1150pmuludq %xmm7,%xmm61151paddq %xmm5,%xmm01152movdqa %xmm2,%xmm51153pmuludq %xmm7,%xmm21154paddq %xmm6,%xmm11155movdqa %xmm3,%xmm61156pmuludq %xmm7,%xmm31157paddq 32(%esp),%xmm21158movdqa %xmm5,32(%esp)1159pshufd $16,16(%edx),%xmm51160paddq 48(%esp),%xmm31161movdqa %xmm6,48(%esp)1162movdqa %xmm4,%xmm61163pmuludq %xmm7,%xmm41164paddq 64(%esp),%xmm41165movdqa %xmm6,64(%esp)1166movdqa %xmm5,%xmm61167pmuludq 48(%esp),%xmm51168movdqa %xmm6,%xmm71169pmuludq 32(%esp),%xmm61170paddq %xmm5,%xmm41171movdqa %xmm7,%xmm51172pmuludq 16(%esp),%xmm71173paddq %xmm6,%xmm31174pshufd $16,80(%edx),%xmm61175pmuludq (%esp),%xmm51176paddq %xmm7,%xmm21177pmuludq 64(%esp),%xmm61178pshufd $16,32(%edx),%xmm71179paddq %xmm5,%xmm11180movdqa %xmm7,%xmm51181pmuludq 32(%esp),%xmm71182paddq %xmm6,%xmm01183movdqa %xmm5,%xmm61184pmuludq 16(%esp),%xmm51185paddq %xmm7,%xmm41186pshufd $16,96(%edx),%xmm71187pmuludq (%esp),%xmm61188paddq %xmm5,%xmm31189movdqa %xmm7,%xmm51190pmuludq 64(%esp),%xmm71191paddq %xmm6,%xmm21192pmuludq 48(%esp),%xmm51193pshufd $16,48(%edx),%xmm61194paddq %xmm7,%xmm11195movdqa %xmm6,%xmm71196pmuludq 16(%esp),%xmm61197paddq %xmm5,%xmm01198pshufd $16,112(%edx),%xmm51199pmuludq (%esp),%xmm71200paddq %xmm6,%xmm41201movdqa %xmm5,%xmm61202pmuludq 64(%esp),%xmm51203paddq %xmm7,%xmm31204movdqa %xmm6,%xmm71205pmuludq 48(%esp),%xmm61206paddq %xmm5,%xmm21207pmuludq 32(%esp),%xmm71208pshufd $16,64(%edx),%xmm51209paddq %xmm6,%xmm11210pshufd $16,128(%edx),%xmm61211pmuludq (%esp),%xmm51212paddq %xmm7,%xmm01213movdqa %xmm6,%xmm71214pmuludq 64(%esp),%xmm61215paddq %xmm5,%xmm41216movdqa %xmm7,%xmm51217pmuludq 16(%esp),%xmm71218paddq %xmm6,%xmm31219movdqa %xmm5,%xmm61220pmuludq 32(%esp),%xmm51221paddq %xmm7,%xmm01222pmuludq 48(%esp),%xmm61223movdqa 64(%ebx),%xmm71224paddq %xmm5,%xmm11225paddq %xmm6,%xmm21226.L017short_tail:1227pshufd $78,%xmm4,%xmm61228pshufd $78,%xmm3,%xmm51229paddq %xmm6,%xmm41230paddq %xmm5,%xmm31231pshufd $78,%xmm0,%xmm61232pshufd $78,%xmm1,%xmm51233paddq %xmm6,%xmm01234paddq %xmm5,%xmm11235pshufd $78,%xmm2,%xmm61236movdqa %xmm3,%xmm51237pand %xmm7,%xmm31238psrlq $26,%xmm51239paddq %xmm6,%xmm21240paddq %xmm4,%xmm51241movdqa %xmm0,%xmm61242pand %xmm7,%xmm01243psrlq $26,%xmm61244movdqa %xmm5,%xmm41245paddq %xmm1,%xmm61246psrlq $26,%xmm51247pand %xmm7,%xmm41248movdqa %xmm6,%xmm11249psrlq $26,%xmm61250paddd %xmm5,%xmm01251psllq $2,%xmm51252paddq %xmm2,%xmm61253paddq %xmm0,%xmm51254pand %xmm7,%xmm11255movdqa %xmm6,%xmm21256psrlq $26,%xmm61257pand %xmm7,%xmm21258paddd %xmm3,%xmm61259movdqa %xmm5,%xmm01260psrlq $26,%xmm51261movdqa %xmm6,%xmm31262psrlq $26,%xmm61263pand %xmm7,%xmm01264paddd %xmm5,%xmm11265pand %xmm7,%xmm31266paddd %xmm6,%xmm41267.L013done:1268movd %xmm0,-48(%edi)1269movd %xmm1,-44(%edi)1270movd %xmm2,-40(%edi)1271movd %xmm3,-36(%edi)1272movd %xmm4,-32(%edi)1273movl %ebp,%esp1274.L007nodata:1275popl %edi1276popl %esi1277popl %ebx1278popl %ebp1279ret1280.size _poly1305_blocks_sse2,.-_poly1305_blocks_sse21281.align 321282.type _poly1305_emit_sse2,@function1283.align 161284_poly1305_emit_sse2:1285#ifdef __CET__12861287.byte 243,15,30,2511288#endif12891290pushl %ebp1291pushl %ebx1292pushl %esi1293pushl %edi1294movl 20(%esp),%ebp1295cmpl $0,20(%ebp)1296je .Lenter_emit1297movl (%ebp),%eax1298movl 4(%ebp),%edi1299movl 8(%ebp),%ecx1300movl 12(%ebp),%edx1301movl 16(%ebp),%esi1302movl %edi,%ebx1303shll $26,%edi1304shrl $6,%ebx1305addl %edi,%eax1306movl %ecx,%edi1307adcl $0,%ebx1308shll $20,%edi1309shrl $12,%ecx1310addl %edi,%ebx1311movl %edx,%edi1312adcl $0,%ecx1313shll $14,%edi1314shrl $18,%edx1315addl %edi,%ecx1316movl %esi,%edi1317adcl $0,%edx1318shll $8,%edi1319shrl $24,%esi1320addl %edi,%edx1321adcl $0,%esi1322movl %esi,%edi1323andl $3,%esi1324shrl $2,%edi1325leal (%edi,%edi,4),%ebp1326movl 24(%esp),%edi1327addl %ebp,%eax1328movl 28(%esp),%ebp1329adcl $0,%ebx1330adcl $0,%ecx1331adcl $0,%edx1332adcl $0,%esi1333movd %eax,%xmm01334addl $5,%eax1335movd %ebx,%xmm11336adcl $0,%ebx1337movd %ecx,%xmm21338adcl $0,%ecx1339movd %edx,%xmm31340adcl $0,%edx1341adcl $0,%esi1342shrl $2,%esi1343negl %esi1344andl %esi,%eax1345andl %esi,%ebx1346andl %esi,%ecx1347andl %esi,%edx1348movl %eax,(%edi)1349movd %xmm0,%eax1350movl %ebx,4(%edi)1351movd %xmm1,%ebx1352movl %ecx,8(%edi)1353movd %xmm2,%ecx1354movl %edx,12(%edi)1355movd %xmm3,%edx1356notl %esi1357andl %esi,%eax1358andl %esi,%ebx1359orl (%edi),%eax1360andl %esi,%ecx1361orl 4(%edi),%ebx1362andl %esi,%edx1363orl 8(%edi),%ecx1364orl 12(%edi),%edx1365addl (%ebp),%eax1366adcl 4(%ebp),%ebx1367movl %eax,(%edi)1368adcl 8(%ebp),%ecx1369movl %ebx,4(%edi)1370adcl 12(%ebp),%edx1371movl %ecx,8(%edi)1372movl %edx,12(%edi)1373popl %edi1374popl %esi1375popl %ebx1376popl %ebp1377ret1378.size _poly1305_emit_sse2,.-_poly1305_emit_sse21379.align 321380.type _poly1305_init_avx2,@function1381.align 161382_poly1305_init_avx2:1383#ifdef __CET__13841385.byte 243,15,30,2511386#endif13871388vmovdqu 24(%edi),%xmm41389leal 48(%edi),%edi1390movl %esp,%ebp1391subl $224,%esp1392andl $-16,%esp1393vmovdqa 64(%ebx),%xmm71394vpand %xmm7,%xmm4,%xmm01395vpsrlq $26,%xmm4,%xmm11396vpsrldq $6,%xmm4,%xmm31397vpand %xmm7,%xmm1,%xmm11398vpsrlq $4,%xmm3,%xmm21399vpsrlq $30,%xmm3,%xmm31400vpand %xmm7,%xmm2,%xmm21401vpand %xmm7,%xmm3,%xmm31402vpsrldq $13,%xmm4,%xmm41403leal 144(%esp),%edx1404movl $2,%ecx1405.L018square:1406vmovdqa %xmm0,(%esp)1407vmovdqa %xmm1,16(%esp)1408vmovdqa %xmm2,32(%esp)1409vmovdqa %xmm3,48(%esp)1410vmovdqa %xmm4,64(%esp)1411vpslld $2,%xmm1,%xmm61412vpslld $2,%xmm2,%xmm51413vpaddd %xmm1,%xmm6,%xmm61414vpaddd %xmm2,%xmm5,%xmm51415vmovdqa %xmm6,80(%esp)1416vmovdqa %xmm5,96(%esp)1417vpslld $2,%xmm3,%xmm61418vpslld $2,%xmm4,%xmm51419vpaddd %xmm3,%xmm6,%xmm61420vpaddd %xmm4,%xmm5,%xmm51421vmovdqa %xmm6,112(%esp)1422vmovdqa %xmm5,128(%esp)1423vpshufd $68,%xmm0,%xmm51424vmovdqa %xmm1,%xmm61425vpshufd $68,%xmm1,%xmm11426vpshufd $68,%xmm2,%xmm21427vpshufd $68,%xmm3,%xmm31428vpshufd $68,%xmm4,%xmm41429vmovdqa %xmm5,(%edx)1430vmovdqa %xmm1,16(%edx)1431vmovdqa %xmm2,32(%edx)1432vmovdqa %xmm3,48(%edx)1433vmovdqa %xmm4,64(%edx)1434vpmuludq %xmm0,%xmm4,%xmm41435vpmuludq %xmm0,%xmm3,%xmm31436vpmuludq %xmm0,%xmm2,%xmm21437vpmuludq %xmm0,%xmm1,%xmm11438vpmuludq %xmm0,%xmm5,%xmm01439vpmuludq 48(%edx),%xmm6,%xmm51440vpaddq %xmm5,%xmm4,%xmm41441vpmuludq 32(%edx),%xmm6,%xmm71442vpaddq %xmm7,%xmm3,%xmm31443vpmuludq 16(%edx),%xmm6,%xmm51444vpaddq %xmm5,%xmm2,%xmm21445vmovdqa 80(%esp),%xmm71446vpmuludq (%edx),%xmm6,%xmm61447vpaddq %xmm6,%xmm1,%xmm11448vmovdqa 32(%esp),%xmm51449vpmuludq 64(%edx),%xmm7,%xmm71450vpaddq %xmm7,%xmm0,%xmm01451vpmuludq 32(%edx),%xmm5,%xmm61452vpaddq %xmm6,%xmm4,%xmm41453vpmuludq 16(%edx),%xmm5,%xmm71454vpaddq %xmm7,%xmm3,%xmm31455vmovdqa 96(%esp),%xmm61456vpmuludq (%edx),%xmm5,%xmm51457vpaddq %xmm5,%xmm2,%xmm21458vpmuludq 64(%edx),%xmm6,%xmm71459vpaddq %xmm7,%xmm1,%xmm11460vmovdqa 48(%esp),%xmm51461vpmuludq 48(%edx),%xmm6,%xmm61462vpaddq %xmm6,%xmm0,%xmm01463vpmuludq 16(%edx),%xmm5,%xmm71464vpaddq %xmm7,%xmm4,%xmm41465vmovdqa 112(%esp),%xmm61466vpmuludq (%edx),%xmm5,%xmm51467vpaddq %xmm5,%xmm3,%xmm31468vpmuludq 64(%edx),%xmm6,%xmm71469vpaddq %xmm7,%xmm2,%xmm21470vpmuludq 48(%edx),%xmm6,%xmm51471vpaddq %xmm5,%xmm1,%xmm11472vmovdqa 64(%esp),%xmm71473vpmuludq 32(%edx),%xmm6,%xmm61474vpaddq %xmm6,%xmm0,%xmm01475vmovdqa 128(%esp),%xmm51476vpmuludq (%edx),%xmm7,%xmm71477vpaddq %xmm7,%xmm4,%xmm41478vpmuludq 64(%edx),%xmm5,%xmm61479vpaddq %xmm6,%xmm3,%xmm31480vpmuludq 16(%edx),%xmm5,%xmm71481vpaddq %xmm7,%xmm0,%xmm01482vpmuludq 32(%edx),%xmm5,%xmm61483vpaddq %xmm6,%xmm1,%xmm11484vmovdqa 64(%ebx),%xmm71485vpmuludq 48(%edx),%xmm5,%xmm51486vpaddq %xmm5,%xmm2,%xmm21487vpsrlq $26,%xmm3,%xmm51488vpand %xmm7,%xmm3,%xmm31489vpsrlq $26,%xmm0,%xmm61490vpand %xmm7,%xmm0,%xmm01491vpaddq %xmm5,%xmm4,%xmm41492vpaddq %xmm6,%xmm1,%xmm11493vpsrlq $26,%xmm4,%xmm51494vpand %xmm7,%xmm4,%xmm41495vpsrlq $26,%xmm1,%xmm61496vpand %xmm7,%xmm1,%xmm11497vpaddq %xmm6,%xmm2,%xmm21498vpaddd %xmm5,%xmm0,%xmm01499vpsllq $2,%xmm5,%xmm51500vpsrlq $26,%xmm2,%xmm61501vpand %xmm7,%xmm2,%xmm21502vpaddd %xmm5,%xmm0,%xmm01503vpaddd %xmm6,%xmm3,%xmm31504vpsrlq $26,%xmm3,%xmm61505vpsrlq $26,%xmm0,%xmm51506vpand %xmm7,%xmm0,%xmm01507vpand %xmm7,%xmm3,%xmm31508vpaddd %xmm5,%xmm1,%xmm11509vpaddd %xmm6,%xmm4,%xmm41510decl %ecx1511jz .L019square_break1512vpunpcklqdq (%esp),%xmm0,%xmm01513vpunpcklqdq 16(%esp),%xmm1,%xmm11514vpunpcklqdq 32(%esp),%xmm2,%xmm21515vpunpcklqdq 48(%esp),%xmm3,%xmm31516vpunpcklqdq 64(%esp),%xmm4,%xmm41517jmp .L018square1518.L019square_break:1519vpsllq $32,%xmm0,%xmm01520vpsllq $32,%xmm1,%xmm11521vpsllq $32,%xmm2,%xmm21522vpsllq $32,%xmm3,%xmm31523vpsllq $32,%xmm4,%xmm41524vpor (%esp),%xmm0,%xmm01525vpor 16(%esp),%xmm1,%xmm11526vpor 32(%esp),%xmm2,%xmm21527vpor 48(%esp),%xmm3,%xmm31528vpor 64(%esp),%xmm4,%xmm41529vpshufd $141,%xmm0,%xmm01530vpshufd $141,%xmm1,%xmm11531vpshufd $141,%xmm2,%xmm21532vpshufd $141,%xmm3,%xmm31533vpshufd $141,%xmm4,%xmm41534vmovdqu %xmm0,(%edi)1535vmovdqu %xmm1,16(%edi)1536vmovdqu %xmm2,32(%edi)1537vmovdqu %xmm3,48(%edi)1538vmovdqu %xmm4,64(%edi)1539vpslld $2,%xmm1,%xmm61540vpslld $2,%xmm2,%xmm51541vpaddd %xmm1,%xmm6,%xmm61542vpaddd %xmm2,%xmm5,%xmm51543vmovdqu %xmm6,80(%edi)1544vmovdqu %xmm5,96(%edi)1545vpslld $2,%xmm3,%xmm61546vpslld $2,%xmm4,%xmm51547vpaddd %xmm3,%xmm6,%xmm61548vpaddd %xmm4,%xmm5,%xmm51549vmovdqu %xmm6,112(%edi)1550vmovdqu %xmm5,128(%edi)1551movl %ebp,%esp1552leal -48(%edi),%edi1553ret1554.size _poly1305_init_avx2,.-_poly1305_init_avx21555.align 321556.type _poly1305_blocks_avx2,@function1557.align 161558_poly1305_blocks_avx2:1559#ifdef __CET__15601561.byte 243,15,30,2511562#endif15631564pushl %ebp1565pushl %ebx1566pushl %esi1567pushl %edi1568movl 20(%esp),%edi1569movl 24(%esp),%esi1570movl 28(%esp),%ecx1571movl 20(%edi),%eax1572andl $-16,%ecx1573jz .L020nodata1574cmpl $64,%ecx1575jae .L021enter_avx21576testl %eax,%eax1577jz .Lenter_blocks1578.L021enter_avx2:1579vzeroupper1580call .L022pic_point1581.L022pic_point:1582popl %ebx1583leal .Lconst_sse2-.L022pic_point(%ebx),%ebx1584testl %eax,%eax1585jnz .L023base2_261586call _poly1305_init_avx21587movl (%edi),%eax1588movl 3(%edi),%ecx1589movl 6(%edi),%edx1590movl 9(%edi),%esi1591movl 13(%edi),%ebp1592shrl $2,%ecx1593andl $67108863,%eax1594shrl $4,%edx1595andl $67108863,%ecx1596shrl $6,%esi1597andl $67108863,%edx1598movl %eax,(%edi)1599movl %ecx,4(%edi)1600movl %edx,8(%edi)1601movl %esi,12(%edi)1602movl %ebp,16(%edi)1603movl $1,20(%edi)1604movl 24(%esp),%esi1605movl 28(%esp),%ecx1606.L023base2_26:1607movl 32(%esp),%eax1608movl %esp,%ebp1609subl $448,%esp1610andl $-512,%esp1611vmovdqu 48(%edi),%xmm01612leal 288(%esp),%edx1613vmovdqu 64(%edi),%xmm11614vmovdqu 80(%edi),%xmm21615vmovdqu 96(%edi),%xmm31616vmovdqu 112(%edi),%xmm41617leal 48(%edi),%edi1618vpermq $64,%ymm0,%ymm01619vpermq $64,%ymm1,%ymm11620vpermq $64,%ymm2,%ymm21621vpermq $64,%ymm3,%ymm31622vpermq $64,%ymm4,%ymm41623vpshufd $200,%ymm0,%ymm01624vpshufd $200,%ymm1,%ymm11625vpshufd $200,%ymm2,%ymm21626vpshufd $200,%ymm3,%ymm31627vpshufd $200,%ymm4,%ymm41628vmovdqa %ymm0,-128(%edx)1629vmovdqu 80(%edi),%xmm01630vmovdqa %ymm1,-96(%edx)1631vmovdqu 96(%edi),%xmm11632vmovdqa %ymm2,-64(%edx)1633vmovdqu 112(%edi),%xmm21634vmovdqa %ymm3,-32(%edx)1635vmovdqu 128(%edi),%xmm31636vmovdqa %ymm4,(%edx)1637vpermq $64,%ymm0,%ymm01638vpermq $64,%ymm1,%ymm11639vpermq $64,%ymm2,%ymm21640vpermq $64,%ymm3,%ymm31641vpshufd $200,%ymm0,%ymm01642vpshufd $200,%ymm1,%ymm11643vpshufd $200,%ymm2,%ymm21644vpshufd $200,%ymm3,%ymm31645vmovdqa %ymm0,32(%edx)1646vmovd -48(%edi),%xmm01647vmovdqa %ymm1,64(%edx)1648vmovd -44(%edi),%xmm11649vmovdqa %ymm2,96(%edx)1650vmovd -40(%edi),%xmm21651vmovdqa %ymm3,128(%edx)1652vmovd -36(%edi),%xmm31653vmovd -32(%edi),%xmm41654vmovdqa 64(%ebx),%ymm71655negl %eax1656testl $63,%ecx1657jz .L024even1658movl %ecx,%edx1659andl $-64,%ecx1660andl $63,%edx1661vmovdqu (%esi),%xmm51662cmpl $32,%edx1663jb .L025one1664vmovdqu 16(%esi),%xmm61665je .L026two1666vinserti128 $1,32(%esi),%ymm5,%ymm51667leal 48(%esi),%esi1668leal 8(%ebx),%ebx1669leal 296(%esp),%edx1670jmp .L027tail1671.L026two:1672leal 32(%esi),%esi1673leal 16(%ebx),%ebx1674leal 304(%esp),%edx1675jmp .L027tail1676.L025one:1677leal 16(%esi),%esi1678vpxor %ymm6,%ymm6,%ymm61679leal 32(%ebx,%eax,8),%ebx1680leal 312(%esp),%edx1681jmp .L027tail1682.align 321683.L024even:1684vmovdqu (%esi),%xmm51685vmovdqu 16(%esi),%xmm61686vinserti128 $1,32(%esi),%ymm5,%ymm51687vinserti128 $1,48(%esi),%ymm6,%ymm61688leal 64(%esi),%esi1689subl $64,%ecx1690jz .L027tail1691.L028loop:1692vmovdqa %ymm2,64(%esp)1693vpsrldq $6,%ymm5,%ymm21694vmovdqa %ymm0,(%esp)1695vpsrldq $6,%ymm6,%ymm01696vmovdqa %ymm1,32(%esp)1697vpunpckhqdq %ymm6,%ymm5,%ymm11698vpunpcklqdq %ymm6,%ymm5,%ymm51699vpunpcklqdq %ymm0,%ymm2,%ymm21700vpsrlq $30,%ymm2,%ymm01701vpsrlq $4,%ymm2,%ymm21702vpsrlq $26,%ymm5,%ymm61703vpsrlq $40,%ymm1,%ymm11704vpand %ymm7,%ymm2,%ymm21705vpand %ymm7,%ymm5,%ymm51706vpand %ymm7,%ymm6,%ymm61707vpand %ymm7,%ymm0,%ymm01708vpor (%ebx),%ymm1,%ymm11709vpaddq 64(%esp),%ymm2,%ymm21710vpaddq (%esp),%ymm5,%ymm51711vpaddq 32(%esp),%ymm6,%ymm61712vpaddq %ymm3,%ymm0,%ymm01713vpaddq %ymm4,%ymm1,%ymm11714vpmuludq -96(%edx),%ymm2,%ymm31715vmovdqa %ymm6,32(%esp)1716vpmuludq -64(%edx),%ymm2,%ymm41717vmovdqa %ymm0,96(%esp)1718vpmuludq 96(%edx),%ymm2,%ymm01719vmovdqa %ymm1,128(%esp)1720vpmuludq 128(%edx),%ymm2,%ymm11721vpmuludq -128(%edx),%ymm2,%ymm21722vpmuludq -32(%edx),%ymm5,%ymm71723vpaddq %ymm7,%ymm3,%ymm31724vpmuludq (%edx),%ymm5,%ymm61725vpaddq %ymm6,%ymm4,%ymm41726vpmuludq -128(%edx),%ymm5,%ymm71727vpaddq %ymm7,%ymm0,%ymm01728vmovdqa 32(%esp),%ymm71729vpmuludq -96(%edx),%ymm5,%ymm61730vpaddq %ymm6,%ymm1,%ymm11731vpmuludq -64(%edx),%ymm5,%ymm51732vpaddq %ymm5,%ymm2,%ymm21733vpmuludq -64(%edx),%ymm7,%ymm61734vpaddq %ymm6,%ymm3,%ymm31735vpmuludq -32(%edx),%ymm7,%ymm51736vpaddq %ymm5,%ymm4,%ymm41737vpmuludq 128(%edx),%ymm7,%ymm61738vpaddq %ymm6,%ymm0,%ymm01739vmovdqa 96(%esp),%ymm61740vpmuludq -128(%edx),%ymm7,%ymm51741vpaddq %ymm5,%ymm1,%ymm11742vpmuludq -96(%edx),%ymm7,%ymm71743vpaddq %ymm7,%ymm2,%ymm21744vpmuludq -128(%edx),%ymm6,%ymm51745vpaddq %ymm5,%ymm3,%ymm31746vpmuludq -96(%edx),%ymm6,%ymm71747vpaddq %ymm7,%ymm4,%ymm41748vpmuludq 64(%edx),%ymm6,%ymm51749vpaddq %ymm5,%ymm0,%ymm01750vmovdqa 128(%esp),%ymm51751vpmuludq 96(%edx),%ymm6,%ymm71752vpaddq %ymm7,%ymm1,%ymm11753vpmuludq 128(%edx),%ymm6,%ymm61754vpaddq %ymm6,%ymm2,%ymm21755vpmuludq 128(%edx),%ymm5,%ymm71756vpaddq %ymm7,%ymm3,%ymm31757vpmuludq 32(%edx),%ymm5,%ymm61758vpaddq %ymm6,%ymm0,%ymm01759vpmuludq -128(%edx),%ymm5,%ymm71760vpaddq %ymm7,%ymm4,%ymm41761vmovdqa 64(%ebx),%ymm71762vpmuludq 64(%edx),%ymm5,%ymm61763vpaddq %ymm6,%ymm1,%ymm11764vpmuludq 96(%edx),%ymm5,%ymm51765vpaddq %ymm5,%ymm2,%ymm21766vpsrlq $26,%ymm3,%ymm51767vpand %ymm7,%ymm3,%ymm31768vpsrlq $26,%ymm0,%ymm61769vpand %ymm7,%ymm0,%ymm01770vpaddq %ymm5,%ymm4,%ymm41771vpaddq %ymm6,%ymm1,%ymm11772vpsrlq $26,%ymm4,%ymm51773vpand %ymm7,%ymm4,%ymm41774vpsrlq $26,%ymm1,%ymm61775vpand %ymm7,%ymm1,%ymm11776vpaddq %ymm6,%ymm2,%ymm21777vpaddq %ymm5,%ymm0,%ymm01778vpsllq $2,%ymm5,%ymm51779vpsrlq $26,%ymm2,%ymm61780vpand %ymm7,%ymm2,%ymm21781vpaddq %ymm5,%ymm0,%ymm01782vpaddq %ymm6,%ymm3,%ymm31783vpsrlq $26,%ymm3,%ymm61784vpsrlq $26,%ymm0,%ymm51785vpand %ymm7,%ymm0,%ymm01786vpand %ymm7,%ymm3,%ymm31787vpaddq %ymm5,%ymm1,%ymm11788vpaddq %ymm6,%ymm4,%ymm41789vmovdqu (%esi),%xmm51790vmovdqu 16(%esi),%xmm61791vinserti128 $1,32(%esi),%ymm5,%ymm51792vinserti128 $1,48(%esi),%ymm6,%ymm61793leal 64(%esi),%esi1794subl $64,%ecx1795jnz .L028loop1796.L027tail:1797vmovdqa %ymm2,64(%esp)1798vpsrldq $6,%ymm5,%ymm21799vmovdqa %ymm0,(%esp)1800vpsrldq $6,%ymm6,%ymm01801vmovdqa %ymm1,32(%esp)1802vpunpckhqdq %ymm6,%ymm5,%ymm11803vpunpcklqdq %ymm6,%ymm5,%ymm51804vpunpcklqdq %ymm0,%ymm2,%ymm21805vpsrlq $30,%ymm2,%ymm01806vpsrlq $4,%ymm2,%ymm21807vpsrlq $26,%ymm5,%ymm61808vpsrlq $40,%ymm1,%ymm11809vpand %ymm7,%ymm2,%ymm21810vpand %ymm7,%ymm5,%ymm51811vpand %ymm7,%ymm6,%ymm61812vpand %ymm7,%ymm0,%ymm01813vpor (%ebx),%ymm1,%ymm11814andl $-64,%ebx1815vpaddq 64(%esp),%ymm2,%ymm21816vpaddq (%esp),%ymm5,%ymm51817vpaddq 32(%esp),%ymm6,%ymm61818vpaddq %ymm3,%ymm0,%ymm01819vpaddq %ymm4,%ymm1,%ymm11820vpmuludq -92(%edx),%ymm2,%ymm31821vmovdqa %ymm6,32(%esp)1822vpmuludq -60(%edx),%ymm2,%ymm41823vmovdqa %ymm0,96(%esp)1824vpmuludq 100(%edx),%ymm2,%ymm01825vmovdqa %ymm1,128(%esp)1826vpmuludq 132(%edx),%ymm2,%ymm11827vpmuludq -124(%edx),%ymm2,%ymm21828vpmuludq -28(%edx),%ymm5,%ymm71829vpaddq %ymm7,%ymm3,%ymm31830vpmuludq 4(%edx),%ymm5,%ymm61831vpaddq %ymm6,%ymm4,%ymm41832vpmuludq -124(%edx),%ymm5,%ymm71833vpaddq %ymm7,%ymm0,%ymm01834vmovdqa 32(%esp),%ymm71835vpmuludq -92(%edx),%ymm5,%ymm61836vpaddq %ymm6,%ymm1,%ymm11837vpmuludq -60(%edx),%ymm5,%ymm51838vpaddq %ymm5,%ymm2,%ymm21839vpmuludq -60(%edx),%ymm7,%ymm61840vpaddq %ymm6,%ymm3,%ymm31841vpmuludq -28(%edx),%ymm7,%ymm51842vpaddq %ymm5,%ymm4,%ymm41843vpmuludq 132(%edx),%ymm7,%ymm61844vpaddq %ymm6,%ymm0,%ymm01845vmovdqa 96(%esp),%ymm61846vpmuludq -124(%edx),%ymm7,%ymm51847vpaddq %ymm5,%ymm1,%ymm11848vpmuludq -92(%edx),%ymm7,%ymm71849vpaddq %ymm7,%ymm2,%ymm21850vpmuludq -124(%edx),%ymm6,%ymm51851vpaddq %ymm5,%ymm3,%ymm31852vpmuludq -92(%edx),%ymm6,%ymm71853vpaddq %ymm7,%ymm4,%ymm41854vpmuludq 68(%edx),%ymm6,%ymm51855vpaddq %ymm5,%ymm0,%ymm01856vmovdqa 128(%esp),%ymm51857vpmuludq 100(%edx),%ymm6,%ymm71858vpaddq %ymm7,%ymm1,%ymm11859vpmuludq 132(%edx),%ymm6,%ymm61860vpaddq %ymm6,%ymm2,%ymm21861vpmuludq 132(%edx),%ymm5,%ymm71862vpaddq %ymm7,%ymm3,%ymm31863vpmuludq 36(%edx),%ymm5,%ymm61864vpaddq %ymm6,%ymm0,%ymm01865vpmuludq -124(%edx),%ymm5,%ymm71866vpaddq %ymm7,%ymm4,%ymm41867vmovdqa 64(%ebx),%ymm71868vpmuludq 68(%edx),%ymm5,%ymm61869vpaddq %ymm6,%ymm1,%ymm11870vpmuludq 100(%edx),%ymm5,%ymm51871vpaddq %ymm5,%ymm2,%ymm21872vpsrldq $8,%ymm4,%ymm51873vpsrldq $8,%ymm3,%ymm61874vpaddq %ymm5,%ymm4,%ymm41875vpsrldq $8,%ymm0,%ymm51876vpaddq %ymm6,%ymm3,%ymm31877vpsrldq $8,%ymm1,%ymm61878vpaddq %ymm5,%ymm0,%ymm01879vpsrldq $8,%ymm2,%ymm51880vpaddq %ymm6,%ymm1,%ymm11881vpermq $2,%ymm4,%ymm61882vpaddq %ymm5,%ymm2,%ymm21883vpermq $2,%ymm3,%ymm51884vpaddq %ymm6,%ymm4,%ymm41885vpermq $2,%ymm0,%ymm61886vpaddq %ymm5,%ymm3,%ymm31887vpermq $2,%ymm1,%ymm51888vpaddq %ymm6,%ymm0,%ymm01889vpermq $2,%ymm2,%ymm61890vpaddq %ymm5,%ymm1,%ymm11891vpaddq %ymm6,%ymm2,%ymm21892vpsrlq $26,%ymm3,%ymm51893vpand %ymm7,%ymm3,%ymm31894vpsrlq $26,%ymm0,%ymm61895vpand %ymm7,%ymm0,%ymm01896vpaddq %ymm5,%ymm4,%ymm41897vpaddq %ymm6,%ymm1,%ymm11898vpsrlq $26,%ymm4,%ymm51899vpand %ymm7,%ymm4,%ymm41900vpsrlq $26,%ymm1,%ymm61901vpand %ymm7,%ymm1,%ymm11902vpaddq %ymm6,%ymm2,%ymm21903vpaddq %ymm5,%ymm0,%ymm01904vpsllq $2,%ymm5,%ymm51905vpsrlq $26,%ymm2,%ymm61906vpand %ymm7,%ymm2,%ymm21907vpaddq %ymm5,%ymm0,%ymm01908vpaddq %ymm6,%ymm3,%ymm31909vpsrlq $26,%ymm3,%ymm61910vpsrlq $26,%ymm0,%ymm51911vpand %ymm7,%ymm0,%ymm01912vpand %ymm7,%ymm3,%ymm31913vpaddq %ymm5,%ymm1,%ymm11914vpaddq %ymm6,%ymm4,%ymm41915cmpl $0,%ecx1916je .L029done1917vpshufd $252,%xmm0,%xmm01918leal 288(%esp),%edx1919vpshufd $252,%xmm1,%xmm11920vpshufd $252,%xmm2,%xmm21921vpshufd $252,%xmm3,%xmm31922vpshufd $252,%xmm4,%xmm41923jmp .L024even1924.align 161925.L029done:1926vmovd %xmm0,-48(%edi)1927vmovd %xmm1,-44(%edi)1928vmovd %xmm2,-40(%edi)1929vmovd %xmm3,-36(%edi)1930vmovd %xmm4,-32(%edi)1931vzeroupper1932movl %ebp,%esp1933.L020nodata:1934popl %edi1935popl %esi1936popl %ebx1937popl %ebp1938ret1939.size _poly1305_blocks_avx2,.-_poly1305_blocks_avx21940.align 641941.Lconst_sse2:1942.long 16777216,0,16777216,0,16777216,0,16777216,01943.long 0,0,0,0,0,0,0,01944.long 67108863,0,67108863,0,67108863,0,67108863,01945.long 268435455,268435452,268435452,2684354521946.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,541947.byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,321948.byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,1111949.byte 114,103,62,01950.align 41951.comm OPENSSL_ia32cap_P,40,419521953.section ".note.gnu.property", "a"1954.p2align 21955.long 1f - 0f1956.long 4f - 1f1957.long 519580:1959.asciz "GNU"19601:1961.p2align 21962.long 0xc00000021963.long 3f - 2f19642:1965.long 319663:1967.p2align 219684:1969#else1970.text1971.align 641972.globl poly1305_init1973.type poly1305_init,@function1974.align 161975poly1305_init:1976.L_poly1305_init_begin:1977#ifdef __CET__19781979.byte 243,15,30,2511980#endif19811982pushl %ebp1983pushl %ebx1984pushl %esi1985pushl %edi1986movl 20(%esp),%edi1987movl 24(%esp),%esi1988movl 28(%esp),%ebp1989xorl %eax,%eax1990movl %eax,(%edi)1991movl %eax,4(%edi)1992movl %eax,8(%edi)1993movl %eax,12(%edi)1994movl %eax,16(%edi)1995movl %eax,20(%edi)1996cmpl $0,%esi1997je .L000nokey1998call .L001pic_point1999.L001pic_point:2000popl %ebx2001leal poly1305_blocks-.L001pic_point(%ebx),%eax2002leal poly1305_emit-.L001pic_point(%ebx),%edx2003leal OPENSSL_ia32cap_P,%edi2004movl (%edi),%ecx2005andl $83886080,%ecx2006cmpl $83886080,%ecx2007jne .L002no_sse22008leal _poly1305_blocks_sse2-.L001pic_point(%ebx),%eax2009leal _poly1305_emit_sse2-.L001pic_point(%ebx),%edx2010movl 8(%edi),%ecx2011testl $32,%ecx2012jz .L002no_sse22013leal _poly1305_blocks_avx2-.L001pic_point(%ebx),%eax2014.L002no_sse2:2015movl 20(%esp),%edi2016movl %eax,(%ebp)2017movl %edx,4(%ebp)2018movl (%esi),%eax2019movl 4(%esi),%ebx2020movl 8(%esi),%ecx2021movl 12(%esi),%edx2022andl $268435455,%eax2023andl $268435452,%ebx2024andl $268435452,%ecx2025andl $268435452,%edx2026movl %eax,24(%edi)2027movl %ebx,28(%edi)2028movl %ecx,32(%edi)2029movl %edx,36(%edi)2030movl $1,%eax2031.L000nokey:2032popl %edi2033popl %esi2034popl %ebx2035popl %ebp2036ret2037.size poly1305_init,.-.L_poly1305_init_begin2038.globl poly1305_blocks2039.type poly1305_blocks,@function2040.align 162041poly1305_blocks:2042.L_poly1305_blocks_begin:2043#ifdef __CET__20442045.byte 243,15,30,2512046#endif20472048pushl %ebp2049pushl %ebx2050pushl %esi2051pushl %edi2052movl 20(%esp),%edi2053movl 24(%esp),%esi2054movl 28(%esp),%ecx2055.Lenter_blocks:2056andl $-15,%ecx2057jz .L003nodata2058subl $64,%esp2059movl 24(%edi),%eax2060movl 28(%edi),%ebx2061leal (%esi,%ecx,1),%ebp2062movl 32(%edi),%ecx2063movl 36(%edi),%edx2064movl %ebp,92(%esp)2065movl %esi,%ebp2066movl %eax,36(%esp)2067movl %ebx,%eax2068shrl $2,%eax2069movl %ebx,40(%esp)2070addl %ebx,%eax2071movl %ecx,%ebx2072shrl $2,%ebx2073movl %ecx,44(%esp)2074addl %ecx,%ebx2075movl %edx,%ecx2076shrl $2,%ecx2077movl %edx,48(%esp)2078addl %edx,%ecx2079movl %eax,52(%esp)2080movl %ebx,56(%esp)2081movl %ecx,60(%esp)2082movl (%edi),%eax2083movl 4(%edi),%ebx2084movl 8(%edi),%ecx2085movl 12(%edi),%esi2086movl 16(%edi),%edi2087jmp .L004loop2088.align 322089.L004loop:2090addl (%ebp),%eax2091adcl 4(%ebp),%ebx2092adcl 8(%ebp),%ecx2093adcl 12(%ebp),%esi2094leal 16(%ebp),%ebp2095adcl 96(%esp),%edi2096movl %eax,(%esp)2097movl %esi,12(%esp)2098mull 36(%esp)2099movl %edi,16(%esp)2100movl %eax,%edi2101movl %ebx,%eax2102movl %edx,%esi2103mull 60(%esp)2104addl %eax,%edi2105movl %ecx,%eax2106adcl %edx,%esi2107mull 56(%esp)2108addl %eax,%edi2109movl 12(%esp),%eax2110adcl %edx,%esi2111mull 52(%esp)2112addl %eax,%edi2113movl (%esp),%eax2114adcl %edx,%esi2115mull 40(%esp)2116movl %edi,20(%esp)2117xorl %edi,%edi2118addl %eax,%esi2119movl %ebx,%eax2120adcl %edx,%edi2121mull 36(%esp)2122addl %eax,%esi2123movl %ecx,%eax2124adcl %edx,%edi2125mull 60(%esp)2126addl %eax,%esi2127movl 12(%esp),%eax2128adcl %edx,%edi2129mull 56(%esp)2130addl %eax,%esi2131movl 16(%esp),%eax2132adcl %edx,%edi2133imull 52(%esp),%eax2134addl %eax,%esi2135movl (%esp),%eax2136adcl $0,%edi2137mull 44(%esp)2138movl %esi,24(%esp)2139xorl %esi,%esi2140addl %eax,%edi2141movl %ebx,%eax2142adcl %edx,%esi2143mull 40(%esp)2144addl %eax,%edi2145movl %ecx,%eax2146adcl %edx,%esi2147mull 36(%esp)2148addl %eax,%edi2149movl 12(%esp),%eax2150adcl %edx,%esi2151mull 60(%esp)2152addl %eax,%edi2153movl 16(%esp),%eax2154adcl %edx,%esi2155imull 56(%esp),%eax2156addl %eax,%edi2157movl (%esp),%eax2158adcl $0,%esi2159mull 48(%esp)2160movl %edi,28(%esp)2161xorl %edi,%edi2162addl %eax,%esi2163movl %ebx,%eax2164adcl %edx,%edi2165mull 44(%esp)2166addl %eax,%esi2167movl %ecx,%eax2168adcl %edx,%edi2169mull 40(%esp)2170addl %eax,%esi2171movl 12(%esp),%eax2172adcl %edx,%edi2173mull 36(%esp)2174addl %eax,%esi2175movl 16(%esp),%ecx2176adcl %edx,%edi2177movl %ecx,%edx2178imull 60(%esp),%ecx2179addl %ecx,%esi2180movl 20(%esp),%eax2181adcl $0,%edi2182imull 36(%esp),%edx2183addl %edi,%edx2184movl 24(%esp),%ebx2185movl 28(%esp),%ecx2186movl %edx,%edi2187shrl $2,%edx2188andl $3,%edi2189leal (%edx,%edx,4),%edx2190addl %edx,%eax2191adcl $0,%ebx2192adcl $0,%ecx2193adcl $0,%esi2194adcl $0,%edi2195cmpl 92(%esp),%ebp2196jne .L004loop2197movl 84(%esp),%edx2198addl $64,%esp2199movl %eax,(%edx)2200movl %ebx,4(%edx)2201movl %ecx,8(%edx)2202movl %esi,12(%edx)2203movl %edi,16(%edx)2204.L003nodata:2205popl %edi2206popl %esi2207popl %ebx2208popl %ebp2209ret2210.size poly1305_blocks,.-.L_poly1305_blocks_begin2211.globl poly1305_emit2212.type poly1305_emit,@function2213.align 162214poly1305_emit:2215.L_poly1305_emit_begin:2216#ifdef __CET__22172218.byte 243,15,30,2512219#endif22202221pushl %ebp2222pushl %ebx2223pushl %esi2224pushl %edi2225movl 20(%esp),%ebp2226.Lenter_emit:2227movl 24(%esp),%edi2228movl (%ebp),%eax2229movl 4(%ebp),%ebx2230movl 8(%ebp),%ecx2231movl 12(%ebp),%edx2232movl 16(%ebp),%esi2233addl $5,%eax2234adcl $0,%ebx2235adcl $0,%ecx2236adcl $0,%edx2237adcl $0,%esi2238shrl $2,%esi2239negl %esi2240andl %esi,%eax2241andl %esi,%ebx2242andl %esi,%ecx2243andl %esi,%edx2244movl %eax,(%edi)2245movl %ebx,4(%edi)2246movl %ecx,8(%edi)2247movl %edx,12(%edi)2248notl %esi2249movl (%ebp),%eax2250movl 4(%ebp),%ebx2251movl 8(%ebp),%ecx2252movl 12(%ebp),%edx2253movl 28(%esp),%ebp2254andl %esi,%eax2255andl %esi,%ebx2256andl %esi,%ecx2257andl %esi,%edx2258orl (%edi),%eax2259orl 4(%edi),%ebx2260orl 8(%edi),%ecx2261orl 12(%edi),%edx2262addl (%ebp),%eax2263adcl 4(%ebp),%ebx2264adcl 8(%ebp),%ecx2265adcl 12(%ebp),%edx2266movl %eax,(%edi)2267movl %ebx,4(%edi)2268movl %ecx,8(%edi)2269movl %edx,12(%edi)2270popl %edi2271popl %esi2272popl %ebx2273popl %ebp2274ret2275.size poly1305_emit,.-.L_poly1305_emit_begin2276.align 322277.type _poly1305_init_sse2,@function2278.align 162279_poly1305_init_sse2:2280#ifdef __CET__22812282.byte 243,15,30,2512283#endif22842285movdqu 24(%edi),%xmm42286leal 48(%edi),%edi2287movl %esp,%ebp2288subl $224,%esp2289andl $-16,%esp2290movq 64(%ebx),%xmm72291movdqa %xmm4,%xmm02292movdqa %xmm4,%xmm12293movdqa %xmm4,%xmm22294pand %xmm7,%xmm02295psrlq $26,%xmm12296psrldq $6,%xmm22297pand %xmm7,%xmm12298movdqa %xmm2,%xmm32299psrlq $4,%xmm22300psrlq $30,%xmm32301pand %xmm7,%xmm22302pand %xmm7,%xmm32303psrldq $13,%xmm42304leal 144(%esp),%edx2305movl $2,%ecx2306.L005square:2307movdqa %xmm0,(%esp)2308movdqa %xmm1,16(%esp)2309movdqa %xmm2,32(%esp)2310movdqa %xmm3,48(%esp)2311movdqa %xmm4,64(%esp)2312movdqa %xmm1,%xmm62313movdqa %xmm2,%xmm52314pslld $2,%xmm62315pslld $2,%xmm52316paddd %xmm1,%xmm62317paddd %xmm2,%xmm52318movdqa %xmm6,80(%esp)2319movdqa %xmm5,96(%esp)2320movdqa %xmm3,%xmm62321movdqa %xmm4,%xmm52322pslld $2,%xmm62323pslld $2,%xmm52324paddd %xmm3,%xmm62325paddd %xmm4,%xmm52326movdqa %xmm6,112(%esp)2327movdqa %xmm5,128(%esp)2328pshufd $68,%xmm0,%xmm62329movdqa %xmm1,%xmm52330pshufd $68,%xmm1,%xmm12331pshufd $68,%xmm2,%xmm22332pshufd $68,%xmm3,%xmm32333pshufd $68,%xmm4,%xmm42334movdqa %xmm6,(%edx)2335movdqa %xmm1,16(%edx)2336movdqa %xmm2,32(%edx)2337movdqa %xmm3,48(%edx)2338movdqa %xmm4,64(%edx)2339pmuludq %xmm0,%xmm42340pmuludq %xmm0,%xmm32341pmuludq %xmm0,%xmm22342pmuludq %xmm0,%xmm12343pmuludq %xmm6,%xmm02344movdqa %xmm5,%xmm62345pmuludq 48(%edx),%xmm52346movdqa %xmm6,%xmm72347pmuludq 32(%edx),%xmm62348paddq %xmm5,%xmm42349movdqa %xmm7,%xmm52350pmuludq 16(%edx),%xmm72351paddq %xmm6,%xmm32352movdqa 80(%esp),%xmm62353pmuludq (%edx),%xmm52354paddq %xmm7,%xmm22355pmuludq 64(%edx),%xmm62356movdqa 32(%esp),%xmm72357paddq %xmm5,%xmm12358movdqa %xmm7,%xmm52359pmuludq 32(%edx),%xmm72360paddq %xmm6,%xmm02361movdqa %xmm5,%xmm62362pmuludq 16(%edx),%xmm52363paddq %xmm7,%xmm42364movdqa 96(%esp),%xmm72365pmuludq (%edx),%xmm62366paddq %xmm5,%xmm32367movdqa %xmm7,%xmm52368pmuludq 64(%edx),%xmm72369paddq %xmm6,%xmm22370pmuludq 48(%edx),%xmm52371movdqa 48(%esp),%xmm62372paddq %xmm7,%xmm12373movdqa %xmm6,%xmm72374pmuludq 16(%edx),%xmm62375paddq %xmm5,%xmm02376movdqa 112(%esp),%xmm52377pmuludq (%edx),%xmm72378paddq %xmm6,%xmm42379movdqa %xmm5,%xmm62380pmuludq 64(%edx),%xmm52381paddq %xmm7,%xmm32382movdqa %xmm6,%xmm72383pmuludq 48(%edx),%xmm62384paddq %xmm5,%xmm22385pmuludq 32(%edx),%xmm72386movdqa 64(%esp),%xmm52387paddq %xmm6,%xmm12388movdqa 128(%esp),%xmm62389pmuludq (%edx),%xmm52390paddq %xmm7,%xmm02391movdqa %xmm6,%xmm72392pmuludq 64(%edx),%xmm62393paddq %xmm5,%xmm42394movdqa %xmm7,%xmm52395pmuludq 16(%edx),%xmm72396paddq %xmm6,%xmm32397movdqa %xmm5,%xmm62398pmuludq 32(%edx),%xmm52399paddq %xmm7,%xmm02400pmuludq 48(%edx),%xmm62401movdqa 64(%ebx),%xmm72402paddq %xmm5,%xmm12403paddq %xmm6,%xmm22404movdqa %xmm3,%xmm52405pand %xmm7,%xmm32406psrlq $26,%xmm52407paddq %xmm4,%xmm52408movdqa %xmm0,%xmm62409pand %xmm7,%xmm02410psrlq $26,%xmm62411movdqa %xmm5,%xmm42412paddq %xmm1,%xmm62413psrlq $26,%xmm52414pand %xmm7,%xmm42415movdqa %xmm6,%xmm12416psrlq $26,%xmm62417paddd %xmm5,%xmm02418psllq $2,%xmm52419paddq %xmm2,%xmm62420paddq %xmm0,%xmm52421pand %xmm7,%xmm12422movdqa %xmm6,%xmm22423psrlq $26,%xmm62424pand %xmm7,%xmm22425paddd %xmm3,%xmm62426movdqa %xmm5,%xmm02427psrlq $26,%xmm52428movdqa %xmm6,%xmm32429psrlq $26,%xmm62430pand %xmm7,%xmm02431paddd %xmm5,%xmm12432pand %xmm7,%xmm32433paddd %xmm6,%xmm42434decl %ecx2435jz .L006square_break2436punpcklqdq (%esp),%xmm02437punpcklqdq 16(%esp),%xmm12438punpcklqdq 32(%esp),%xmm22439punpcklqdq 48(%esp),%xmm32440punpcklqdq 64(%esp),%xmm42441jmp .L005square2442.L006square_break:2443psllq $32,%xmm02444psllq $32,%xmm12445psllq $32,%xmm22446psllq $32,%xmm32447psllq $32,%xmm42448por (%esp),%xmm02449por 16(%esp),%xmm12450por 32(%esp),%xmm22451por 48(%esp),%xmm32452por 64(%esp),%xmm42453pshufd $141,%xmm0,%xmm02454pshufd $141,%xmm1,%xmm12455pshufd $141,%xmm2,%xmm22456pshufd $141,%xmm3,%xmm32457pshufd $141,%xmm4,%xmm42458movdqu %xmm0,(%edi)2459movdqu %xmm1,16(%edi)2460movdqu %xmm2,32(%edi)2461movdqu %xmm3,48(%edi)2462movdqu %xmm4,64(%edi)2463movdqa %xmm1,%xmm62464movdqa %xmm2,%xmm52465pslld $2,%xmm62466pslld $2,%xmm52467paddd %xmm1,%xmm62468paddd %xmm2,%xmm52469movdqu %xmm6,80(%edi)2470movdqu %xmm5,96(%edi)2471movdqa %xmm3,%xmm62472movdqa %xmm4,%xmm52473pslld $2,%xmm62474pslld $2,%xmm52475paddd %xmm3,%xmm62476paddd %xmm4,%xmm52477movdqu %xmm6,112(%edi)2478movdqu %xmm5,128(%edi)2479movl %ebp,%esp2480leal -48(%edi),%edi2481ret2482.size _poly1305_init_sse2,.-_poly1305_init_sse22483.align 322484.type _poly1305_blocks_sse2,@function2485.align 162486_poly1305_blocks_sse2:2487#ifdef __CET__24882489.byte 243,15,30,2512490#endif24912492pushl %ebp2493pushl %ebx2494pushl %esi2495pushl %edi2496movl 20(%esp),%edi2497movl 24(%esp),%esi2498movl 28(%esp),%ecx2499movl 20(%edi),%eax2500andl $-16,%ecx2501jz .L007nodata2502cmpl $64,%ecx2503jae .L008enter_sse22504testl %eax,%eax2505jz .Lenter_blocks2506.align 162507.L008enter_sse2:2508call .L009pic_point2509.L009pic_point:2510popl %ebx2511leal .Lconst_sse2-.L009pic_point(%ebx),%ebx2512testl %eax,%eax2513jnz .L010base2_262514call _poly1305_init_sse22515movl (%edi),%eax2516movl 3(%edi),%ecx2517movl 6(%edi),%edx2518movl 9(%edi),%esi2519movl 13(%edi),%ebp2520movl $1,20(%edi)2521shrl $2,%ecx2522andl $67108863,%eax2523shrl $4,%edx2524andl $67108863,%ecx2525shrl $6,%esi2526andl $67108863,%edx2527movd %eax,%xmm02528movd %ecx,%xmm12529movd %edx,%xmm22530movd %esi,%xmm32531movd %ebp,%xmm42532movl 24(%esp),%esi2533movl 28(%esp),%ecx2534jmp .L011base2_322535.align 162536.L010base2_26:2537movd (%edi),%xmm02538movd 4(%edi),%xmm12539movd 8(%edi),%xmm22540movd 12(%edi),%xmm32541movd 16(%edi),%xmm42542movdqa 64(%ebx),%xmm72543.L011base2_32:2544movl 32(%esp),%eax2545movl %esp,%ebp2546subl $528,%esp2547andl $-16,%esp2548leal 48(%edi),%edi2549shll $24,%eax2550testl $31,%ecx2551jz .L012even2552movdqu (%esi),%xmm62553leal 16(%esi),%esi2554movdqa %xmm6,%xmm52555pand %xmm7,%xmm62556paddd %xmm6,%xmm02557movdqa %xmm5,%xmm62558psrlq $26,%xmm52559psrldq $6,%xmm62560pand %xmm7,%xmm52561paddd %xmm5,%xmm12562movdqa %xmm6,%xmm52563psrlq $4,%xmm62564pand %xmm7,%xmm62565paddd %xmm6,%xmm22566movdqa %xmm5,%xmm62567psrlq $30,%xmm52568pand %xmm7,%xmm52569psrldq $7,%xmm62570paddd %xmm5,%xmm32571movd %eax,%xmm52572paddd %xmm6,%xmm42573movd 12(%edi),%xmm62574paddd %xmm5,%xmm42575movdqa %xmm0,(%esp)2576movdqa %xmm1,16(%esp)2577movdqa %xmm2,32(%esp)2578movdqa %xmm3,48(%esp)2579movdqa %xmm4,64(%esp)2580pmuludq %xmm6,%xmm02581pmuludq %xmm6,%xmm12582pmuludq %xmm6,%xmm22583movd 28(%edi),%xmm52584pmuludq %xmm6,%xmm32585pmuludq %xmm6,%xmm42586movdqa %xmm5,%xmm62587pmuludq 48(%esp),%xmm52588movdqa %xmm6,%xmm72589pmuludq 32(%esp),%xmm62590paddq %xmm5,%xmm42591movdqa %xmm7,%xmm52592pmuludq 16(%esp),%xmm72593paddq %xmm6,%xmm32594movd 92(%edi),%xmm62595pmuludq (%esp),%xmm52596paddq %xmm7,%xmm22597pmuludq 64(%esp),%xmm62598movd 44(%edi),%xmm72599paddq %xmm5,%xmm12600movdqa %xmm7,%xmm52601pmuludq 32(%esp),%xmm72602paddq %xmm6,%xmm02603movdqa %xmm5,%xmm62604pmuludq 16(%esp),%xmm52605paddq %xmm7,%xmm42606movd 108(%edi),%xmm72607pmuludq (%esp),%xmm62608paddq %xmm5,%xmm32609movdqa %xmm7,%xmm52610pmuludq 64(%esp),%xmm72611paddq %xmm6,%xmm22612pmuludq 48(%esp),%xmm52613movd 60(%edi),%xmm62614paddq %xmm7,%xmm12615movdqa %xmm6,%xmm72616pmuludq 16(%esp),%xmm62617paddq %xmm5,%xmm02618movd 124(%edi),%xmm52619pmuludq (%esp),%xmm72620paddq %xmm6,%xmm42621movdqa %xmm5,%xmm62622pmuludq 64(%esp),%xmm52623paddq %xmm7,%xmm32624movdqa %xmm6,%xmm72625pmuludq 48(%esp),%xmm62626paddq %xmm5,%xmm22627pmuludq 32(%esp),%xmm72628movd 76(%edi),%xmm52629paddq %xmm6,%xmm12630movd 140(%edi),%xmm62631pmuludq (%esp),%xmm52632paddq %xmm7,%xmm02633movdqa %xmm6,%xmm72634pmuludq 64(%esp),%xmm62635paddq %xmm5,%xmm42636movdqa %xmm7,%xmm52637pmuludq 16(%esp),%xmm72638paddq %xmm6,%xmm32639movdqa %xmm5,%xmm62640pmuludq 32(%esp),%xmm52641paddq %xmm7,%xmm02642pmuludq 48(%esp),%xmm62643movdqa 64(%ebx),%xmm72644paddq %xmm5,%xmm12645paddq %xmm6,%xmm22646movdqa %xmm3,%xmm52647pand %xmm7,%xmm32648psrlq $26,%xmm52649paddq %xmm4,%xmm52650movdqa %xmm0,%xmm62651pand %xmm7,%xmm02652psrlq $26,%xmm62653movdqa %xmm5,%xmm42654paddq %xmm1,%xmm62655psrlq $26,%xmm52656pand %xmm7,%xmm42657movdqa %xmm6,%xmm12658psrlq $26,%xmm62659paddd %xmm5,%xmm02660psllq $2,%xmm52661paddq %xmm2,%xmm62662paddq %xmm0,%xmm52663pand %xmm7,%xmm12664movdqa %xmm6,%xmm22665psrlq $26,%xmm62666pand %xmm7,%xmm22667paddd %xmm3,%xmm62668movdqa %xmm5,%xmm02669psrlq $26,%xmm52670movdqa %xmm6,%xmm32671psrlq $26,%xmm62672pand %xmm7,%xmm02673paddd %xmm5,%xmm12674pand %xmm7,%xmm32675paddd %xmm6,%xmm42676subl $16,%ecx2677jz .L013done2678.L012even:2679leal 384(%esp),%edx2680leal -32(%esi),%eax2681subl $64,%ecx2682movdqu (%edi),%xmm52683pshufd $68,%xmm5,%xmm62684cmovbl %eax,%esi2685pshufd $238,%xmm5,%xmm52686movdqa %xmm6,(%edx)2687leal 160(%esp),%eax2688movdqu 16(%edi),%xmm62689movdqa %xmm5,-144(%edx)2690pshufd $68,%xmm6,%xmm52691pshufd $238,%xmm6,%xmm62692movdqa %xmm5,16(%edx)2693movdqu 32(%edi),%xmm52694movdqa %xmm6,-128(%edx)2695pshufd $68,%xmm5,%xmm62696pshufd $238,%xmm5,%xmm52697movdqa %xmm6,32(%edx)2698movdqu 48(%edi),%xmm62699movdqa %xmm5,-112(%edx)2700pshufd $68,%xmm6,%xmm52701pshufd $238,%xmm6,%xmm62702movdqa %xmm5,48(%edx)2703movdqu 64(%edi),%xmm52704movdqa %xmm6,-96(%edx)2705pshufd $68,%xmm5,%xmm62706pshufd $238,%xmm5,%xmm52707movdqa %xmm6,64(%edx)2708movdqu 80(%edi),%xmm62709movdqa %xmm5,-80(%edx)2710pshufd $68,%xmm6,%xmm52711pshufd $238,%xmm6,%xmm62712movdqa %xmm5,80(%edx)2713movdqu 96(%edi),%xmm52714movdqa %xmm6,-64(%edx)2715pshufd $68,%xmm5,%xmm62716pshufd $238,%xmm5,%xmm52717movdqa %xmm6,96(%edx)2718movdqu 112(%edi),%xmm62719movdqa %xmm5,-48(%edx)2720pshufd $68,%xmm6,%xmm52721pshufd $238,%xmm6,%xmm62722movdqa %xmm5,112(%edx)2723movdqu 128(%edi),%xmm52724movdqa %xmm6,-32(%edx)2725pshufd $68,%xmm5,%xmm62726pshufd $238,%xmm5,%xmm52727movdqa %xmm6,128(%edx)2728movdqa %xmm5,-16(%edx)2729movdqu 32(%esi),%xmm52730movdqu 48(%esi),%xmm62731leal 32(%esi),%esi2732movdqa %xmm2,112(%esp)2733movdqa %xmm3,128(%esp)2734movdqa %xmm4,144(%esp)2735movdqa %xmm5,%xmm22736movdqa %xmm6,%xmm32737psrldq $6,%xmm22738psrldq $6,%xmm32739movdqa %xmm5,%xmm42740punpcklqdq %xmm3,%xmm22741punpckhqdq %xmm6,%xmm42742punpcklqdq %xmm6,%xmm52743movdqa %xmm2,%xmm32744psrlq $4,%xmm22745psrlq $30,%xmm32746movdqa %xmm5,%xmm62747psrlq $40,%xmm42748psrlq $26,%xmm62749pand %xmm7,%xmm52750pand %xmm7,%xmm62751pand %xmm7,%xmm22752pand %xmm7,%xmm32753por (%ebx),%xmm42754movdqa %xmm0,80(%esp)2755movdqa %xmm1,96(%esp)2756jbe .L014skip_loop2757jmp .L015loop2758.align 322759.L015loop:2760movdqa -144(%edx),%xmm72761movdqa %xmm6,16(%eax)2762movdqa %xmm2,32(%eax)2763movdqa %xmm3,48(%eax)2764movdqa %xmm4,64(%eax)2765movdqa %xmm5,%xmm12766pmuludq %xmm7,%xmm52767movdqa %xmm6,%xmm02768pmuludq %xmm7,%xmm62769pmuludq %xmm7,%xmm22770pmuludq %xmm7,%xmm32771pmuludq %xmm7,%xmm42772pmuludq -16(%edx),%xmm02773movdqa %xmm1,%xmm72774pmuludq -128(%edx),%xmm12775paddq %xmm5,%xmm02776movdqa %xmm7,%xmm52777pmuludq -112(%edx),%xmm72778paddq %xmm6,%xmm12779movdqa %xmm5,%xmm62780pmuludq -96(%edx),%xmm52781paddq %xmm7,%xmm22782movdqa 16(%eax),%xmm72783pmuludq -80(%edx),%xmm62784paddq %xmm5,%xmm32785movdqa %xmm7,%xmm52786pmuludq -128(%edx),%xmm72787paddq %xmm6,%xmm42788movdqa %xmm5,%xmm62789pmuludq -112(%edx),%xmm52790paddq %xmm7,%xmm22791movdqa 32(%eax),%xmm72792pmuludq -96(%edx),%xmm62793paddq %xmm5,%xmm32794movdqa %xmm7,%xmm52795pmuludq -32(%edx),%xmm72796paddq %xmm6,%xmm42797movdqa %xmm5,%xmm62798pmuludq -16(%edx),%xmm52799paddq %xmm7,%xmm02800movdqa %xmm6,%xmm72801pmuludq -128(%edx),%xmm62802paddq %xmm5,%xmm12803movdqa 48(%eax),%xmm52804pmuludq -112(%edx),%xmm72805paddq %xmm6,%xmm32806movdqa %xmm5,%xmm62807pmuludq -48(%edx),%xmm52808paddq %xmm7,%xmm42809movdqa %xmm6,%xmm72810pmuludq -32(%edx),%xmm62811paddq %xmm5,%xmm02812movdqa %xmm7,%xmm52813pmuludq -16(%edx),%xmm72814paddq %xmm6,%xmm12815movdqa 64(%eax),%xmm62816pmuludq -128(%edx),%xmm52817paddq %xmm7,%xmm22818movdqa %xmm6,%xmm72819pmuludq -16(%edx),%xmm62820paddq %xmm5,%xmm42821movdqa %xmm7,%xmm52822pmuludq -64(%edx),%xmm72823paddq %xmm6,%xmm32824movdqa %xmm5,%xmm62825pmuludq -48(%edx),%xmm52826paddq %xmm7,%xmm02827movdqa 64(%ebx),%xmm72828pmuludq -32(%edx),%xmm62829paddq %xmm5,%xmm12830paddq %xmm6,%xmm22831movdqu -32(%esi),%xmm52832movdqu -16(%esi),%xmm62833leal 32(%esi),%esi2834movdqa %xmm2,32(%esp)2835movdqa %xmm3,48(%esp)2836movdqa %xmm4,64(%esp)2837movdqa %xmm5,%xmm22838movdqa %xmm6,%xmm32839psrldq $6,%xmm22840psrldq $6,%xmm32841movdqa %xmm5,%xmm42842punpcklqdq %xmm3,%xmm22843punpckhqdq %xmm6,%xmm42844punpcklqdq %xmm6,%xmm52845movdqa %xmm2,%xmm32846psrlq $4,%xmm22847psrlq $30,%xmm32848movdqa %xmm5,%xmm62849psrlq $40,%xmm42850psrlq $26,%xmm62851pand %xmm7,%xmm52852pand %xmm7,%xmm62853pand %xmm7,%xmm22854pand %xmm7,%xmm32855por (%ebx),%xmm42856leal -32(%esi),%eax2857subl $64,%ecx2858paddd 80(%esp),%xmm52859paddd 96(%esp),%xmm62860paddd 112(%esp),%xmm22861paddd 128(%esp),%xmm32862paddd 144(%esp),%xmm42863cmovbl %eax,%esi2864leal 160(%esp),%eax2865movdqa (%edx),%xmm72866movdqa %xmm1,16(%esp)2867movdqa %xmm6,16(%eax)2868movdqa %xmm2,32(%eax)2869movdqa %xmm3,48(%eax)2870movdqa %xmm4,64(%eax)2871movdqa %xmm5,%xmm12872pmuludq %xmm7,%xmm52873paddq %xmm0,%xmm52874movdqa %xmm6,%xmm02875pmuludq %xmm7,%xmm62876pmuludq %xmm7,%xmm22877pmuludq %xmm7,%xmm32878pmuludq %xmm7,%xmm42879paddq 16(%esp),%xmm62880paddq 32(%esp),%xmm22881paddq 48(%esp),%xmm32882paddq 64(%esp),%xmm42883pmuludq 128(%edx),%xmm02884movdqa %xmm1,%xmm72885pmuludq 16(%edx),%xmm12886paddq %xmm5,%xmm02887movdqa %xmm7,%xmm52888pmuludq 32(%edx),%xmm72889paddq %xmm6,%xmm12890movdqa %xmm5,%xmm62891pmuludq 48(%edx),%xmm52892paddq %xmm7,%xmm22893movdqa 16(%eax),%xmm72894pmuludq 64(%edx),%xmm62895paddq %xmm5,%xmm32896movdqa %xmm7,%xmm52897pmuludq 16(%edx),%xmm72898paddq %xmm6,%xmm42899movdqa %xmm5,%xmm62900pmuludq 32(%edx),%xmm52901paddq %xmm7,%xmm22902movdqa 32(%eax),%xmm72903pmuludq 48(%edx),%xmm62904paddq %xmm5,%xmm32905movdqa %xmm7,%xmm52906pmuludq 112(%edx),%xmm72907paddq %xmm6,%xmm42908movdqa %xmm5,%xmm62909pmuludq 128(%edx),%xmm52910paddq %xmm7,%xmm02911movdqa %xmm6,%xmm72912pmuludq 16(%edx),%xmm62913paddq %xmm5,%xmm12914movdqa 48(%eax),%xmm52915pmuludq 32(%edx),%xmm72916paddq %xmm6,%xmm32917movdqa %xmm5,%xmm62918pmuludq 96(%edx),%xmm52919paddq %xmm7,%xmm42920movdqa %xmm6,%xmm72921pmuludq 112(%edx),%xmm62922paddq %xmm5,%xmm02923movdqa %xmm7,%xmm52924pmuludq 128(%edx),%xmm72925paddq %xmm6,%xmm12926movdqa 64(%eax),%xmm62927pmuludq 16(%edx),%xmm52928paddq %xmm7,%xmm22929movdqa %xmm6,%xmm72930pmuludq 128(%edx),%xmm62931paddq %xmm5,%xmm42932movdqa %xmm7,%xmm52933pmuludq 80(%edx),%xmm72934paddq %xmm6,%xmm32935movdqa %xmm5,%xmm62936pmuludq 96(%edx),%xmm52937paddq %xmm7,%xmm02938movdqa 64(%ebx),%xmm72939pmuludq 112(%edx),%xmm62940paddq %xmm5,%xmm12941paddq %xmm6,%xmm22942movdqa %xmm3,%xmm52943pand %xmm7,%xmm32944psrlq $26,%xmm52945paddq %xmm4,%xmm52946movdqa %xmm0,%xmm62947pand %xmm7,%xmm02948psrlq $26,%xmm62949movdqa %xmm5,%xmm42950paddq %xmm1,%xmm62951psrlq $26,%xmm52952pand %xmm7,%xmm42953movdqa %xmm6,%xmm12954psrlq $26,%xmm62955paddd %xmm5,%xmm02956psllq $2,%xmm52957paddq %xmm2,%xmm62958paddq %xmm0,%xmm52959pand %xmm7,%xmm12960movdqa %xmm6,%xmm22961psrlq $26,%xmm62962pand %xmm7,%xmm22963paddd %xmm3,%xmm62964movdqa %xmm5,%xmm02965psrlq $26,%xmm52966movdqa %xmm6,%xmm32967psrlq $26,%xmm62968pand %xmm7,%xmm02969paddd %xmm5,%xmm12970pand %xmm7,%xmm32971paddd %xmm6,%xmm42972movdqu 32(%esi),%xmm52973movdqu 48(%esi),%xmm62974leal 32(%esi),%esi2975movdqa %xmm2,112(%esp)2976movdqa %xmm3,128(%esp)2977movdqa %xmm4,144(%esp)2978movdqa %xmm5,%xmm22979movdqa %xmm6,%xmm32980psrldq $6,%xmm22981psrldq $6,%xmm32982movdqa %xmm5,%xmm42983punpcklqdq %xmm3,%xmm22984punpckhqdq %xmm6,%xmm42985punpcklqdq %xmm6,%xmm52986movdqa %xmm2,%xmm32987psrlq $4,%xmm22988psrlq $30,%xmm32989movdqa %xmm5,%xmm62990psrlq $40,%xmm42991psrlq $26,%xmm62992pand %xmm7,%xmm52993pand %xmm7,%xmm62994pand %xmm7,%xmm22995pand %xmm7,%xmm32996por (%ebx),%xmm42997movdqa %xmm0,80(%esp)2998movdqa %xmm1,96(%esp)2999ja .L015loop3000.L014skip_loop:3001pshufd $16,-144(%edx),%xmm73002addl $32,%ecx3003jnz .L016long_tail3004paddd %xmm0,%xmm53005paddd %xmm1,%xmm63006paddd 112(%esp),%xmm23007paddd 128(%esp),%xmm33008paddd 144(%esp),%xmm43009.L016long_tail:3010movdqa %xmm5,(%eax)3011movdqa %xmm6,16(%eax)3012movdqa %xmm2,32(%eax)3013movdqa %xmm3,48(%eax)3014movdqa %xmm4,64(%eax)3015pmuludq %xmm7,%xmm53016pmuludq %xmm7,%xmm63017pmuludq %xmm7,%xmm23018movdqa %xmm5,%xmm03019pshufd $16,-128(%edx),%xmm53020pmuludq %xmm7,%xmm33021movdqa %xmm6,%xmm13022pmuludq %xmm7,%xmm43023movdqa %xmm5,%xmm63024pmuludq 48(%eax),%xmm53025movdqa %xmm6,%xmm73026pmuludq 32(%eax),%xmm63027paddq %xmm5,%xmm43028movdqa %xmm7,%xmm53029pmuludq 16(%eax),%xmm73030paddq %xmm6,%xmm33031pshufd $16,-64(%edx),%xmm63032pmuludq (%eax),%xmm53033paddq %xmm7,%xmm23034pmuludq 64(%eax),%xmm63035pshufd $16,-112(%edx),%xmm73036paddq %xmm5,%xmm13037movdqa %xmm7,%xmm53038pmuludq 32(%eax),%xmm73039paddq %xmm6,%xmm03040movdqa %xmm5,%xmm63041pmuludq 16(%eax),%xmm53042paddq %xmm7,%xmm43043pshufd $16,-48(%edx),%xmm73044pmuludq (%eax),%xmm63045paddq %xmm5,%xmm33046movdqa %xmm7,%xmm53047pmuludq 64(%eax),%xmm73048paddq %xmm6,%xmm23049pmuludq 48(%eax),%xmm53050pshufd $16,-96(%edx),%xmm63051paddq %xmm7,%xmm13052movdqa %xmm6,%xmm73053pmuludq 16(%eax),%xmm63054paddq %xmm5,%xmm03055pshufd $16,-32(%edx),%xmm53056pmuludq (%eax),%xmm73057paddq %xmm6,%xmm43058movdqa %xmm5,%xmm63059pmuludq 64(%eax),%xmm53060paddq %xmm7,%xmm33061movdqa %xmm6,%xmm73062pmuludq 48(%eax),%xmm63063paddq %xmm5,%xmm23064pmuludq 32(%eax),%xmm73065pshufd $16,-80(%edx),%xmm53066paddq %xmm6,%xmm13067pshufd $16,-16(%edx),%xmm63068pmuludq (%eax),%xmm53069paddq %xmm7,%xmm03070movdqa %xmm6,%xmm73071pmuludq 64(%eax),%xmm63072paddq %xmm5,%xmm43073movdqa %xmm7,%xmm53074pmuludq 16(%eax),%xmm73075paddq %xmm6,%xmm33076movdqa %xmm5,%xmm63077pmuludq 32(%eax),%xmm53078paddq %xmm7,%xmm03079pmuludq 48(%eax),%xmm63080movdqa 64(%ebx),%xmm73081paddq %xmm5,%xmm13082paddq %xmm6,%xmm23083jz .L017short_tail3084movdqu -32(%esi),%xmm53085movdqu -16(%esi),%xmm63086leal 32(%esi),%esi3087movdqa %xmm2,32(%esp)3088movdqa %xmm3,48(%esp)3089movdqa %xmm4,64(%esp)3090movdqa %xmm5,%xmm23091movdqa %xmm6,%xmm33092psrldq $6,%xmm23093psrldq $6,%xmm33094movdqa %xmm5,%xmm43095punpcklqdq %xmm3,%xmm23096punpckhqdq %xmm6,%xmm43097punpcklqdq %xmm6,%xmm53098movdqa %xmm2,%xmm33099psrlq $4,%xmm23100psrlq $30,%xmm33101movdqa %xmm5,%xmm63102psrlq $40,%xmm43103psrlq $26,%xmm63104pand %xmm7,%xmm53105pand %xmm7,%xmm63106pand %xmm7,%xmm23107pand %xmm7,%xmm33108por (%ebx),%xmm43109pshufd $16,(%edx),%xmm73110paddd 80(%esp),%xmm53111paddd 96(%esp),%xmm63112paddd 112(%esp),%xmm23113paddd 128(%esp),%xmm33114paddd 144(%esp),%xmm43115movdqa %xmm5,(%esp)3116pmuludq %xmm7,%xmm53117movdqa %xmm6,16(%esp)3118pmuludq %xmm7,%xmm63119paddq %xmm5,%xmm03120movdqa %xmm2,%xmm53121pmuludq %xmm7,%xmm23122paddq %xmm6,%xmm13123movdqa %xmm3,%xmm63124pmuludq %xmm7,%xmm33125paddq 32(%esp),%xmm23126movdqa %xmm5,32(%esp)3127pshufd $16,16(%edx),%xmm53128paddq 48(%esp),%xmm33129movdqa %xmm6,48(%esp)3130movdqa %xmm4,%xmm63131pmuludq %xmm7,%xmm43132paddq 64(%esp),%xmm43133movdqa %xmm6,64(%esp)3134movdqa %xmm5,%xmm63135pmuludq 48(%esp),%xmm53136movdqa %xmm6,%xmm73137pmuludq 32(%esp),%xmm63138paddq %xmm5,%xmm43139movdqa %xmm7,%xmm53140pmuludq 16(%esp),%xmm73141paddq %xmm6,%xmm33142pshufd $16,80(%edx),%xmm63143pmuludq (%esp),%xmm53144paddq %xmm7,%xmm23145pmuludq 64(%esp),%xmm63146pshufd $16,32(%edx),%xmm73147paddq %xmm5,%xmm13148movdqa %xmm7,%xmm53149pmuludq 32(%esp),%xmm73150paddq %xmm6,%xmm03151movdqa %xmm5,%xmm63152pmuludq 16(%esp),%xmm53153paddq %xmm7,%xmm43154pshufd $16,96(%edx),%xmm73155pmuludq (%esp),%xmm63156paddq %xmm5,%xmm33157movdqa %xmm7,%xmm53158pmuludq 64(%esp),%xmm73159paddq %xmm6,%xmm23160pmuludq 48(%esp),%xmm53161pshufd $16,48(%edx),%xmm63162paddq %xmm7,%xmm13163movdqa %xmm6,%xmm73164pmuludq 16(%esp),%xmm63165paddq %xmm5,%xmm03166pshufd $16,112(%edx),%xmm53167pmuludq (%esp),%xmm73168paddq %xmm6,%xmm43169movdqa %xmm5,%xmm63170pmuludq 64(%esp),%xmm53171paddq %xmm7,%xmm33172movdqa %xmm6,%xmm73173pmuludq 48(%esp),%xmm63174paddq %xmm5,%xmm23175pmuludq 32(%esp),%xmm73176pshufd $16,64(%edx),%xmm53177paddq %xmm6,%xmm13178pshufd $16,128(%edx),%xmm63179pmuludq (%esp),%xmm53180paddq %xmm7,%xmm03181movdqa %xmm6,%xmm73182pmuludq 64(%esp),%xmm63183paddq %xmm5,%xmm43184movdqa %xmm7,%xmm53185pmuludq 16(%esp),%xmm73186paddq %xmm6,%xmm33187movdqa %xmm5,%xmm63188pmuludq 32(%esp),%xmm53189paddq %xmm7,%xmm03190pmuludq 48(%esp),%xmm63191movdqa 64(%ebx),%xmm73192paddq %xmm5,%xmm13193paddq %xmm6,%xmm23194.L017short_tail:3195pshufd $78,%xmm4,%xmm63196pshufd $78,%xmm3,%xmm53197paddq %xmm6,%xmm43198paddq %xmm5,%xmm33199pshufd $78,%xmm0,%xmm63200pshufd $78,%xmm1,%xmm53201paddq %xmm6,%xmm03202paddq %xmm5,%xmm13203pshufd $78,%xmm2,%xmm63204movdqa %xmm3,%xmm53205pand %xmm7,%xmm33206psrlq $26,%xmm53207paddq %xmm6,%xmm23208paddq %xmm4,%xmm53209movdqa %xmm0,%xmm63210pand %xmm7,%xmm03211psrlq $26,%xmm63212movdqa %xmm5,%xmm43213paddq %xmm1,%xmm63214psrlq $26,%xmm53215pand %xmm7,%xmm43216movdqa %xmm6,%xmm13217psrlq $26,%xmm63218paddd %xmm5,%xmm03219psllq $2,%xmm53220paddq %xmm2,%xmm63221paddq %xmm0,%xmm53222pand %xmm7,%xmm13223movdqa %xmm6,%xmm23224psrlq $26,%xmm63225pand %xmm7,%xmm23226paddd %xmm3,%xmm63227movdqa %xmm5,%xmm03228psrlq $26,%xmm53229movdqa %xmm6,%xmm33230psrlq $26,%xmm63231pand %xmm7,%xmm03232paddd %xmm5,%xmm13233pand %xmm7,%xmm33234paddd %xmm6,%xmm43235.L013done:3236movd %xmm0,-48(%edi)3237movd %xmm1,-44(%edi)3238movd %xmm2,-40(%edi)3239movd %xmm3,-36(%edi)3240movd %xmm4,-32(%edi)3241movl %ebp,%esp3242.L007nodata:3243popl %edi3244popl %esi3245popl %ebx3246popl %ebp3247ret3248.size _poly1305_blocks_sse2,.-_poly1305_blocks_sse23249.align 323250.type _poly1305_emit_sse2,@function3251.align 163252_poly1305_emit_sse2:3253#ifdef __CET__32543255.byte 243,15,30,2513256#endif32573258pushl %ebp3259pushl %ebx3260pushl %esi3261pushl %edi3262movl 20(%esp),%ebp3263cmpl $0,20(%ebp)3264je .Lenter_emit3265movl (%ebp),%eax3266movl 4(%ebp),%edi3267movl 8(%ebp),%ecx3268movl 12(%ebp),%edx3269movl 16(%ebp),%esi3270movl %edi,%ebx3271shll $26,%edi3272shrl $6,%ebx3273addl %edi,%eax3274movl %ecx,%edi3275adcl $0,%ebx3276shll $20,%edi3277shrl $12,%ecx3278addl %edi,%ebx3279movl %edx,%edi3280adcl $0,%ecx3281shll $14,%edi3282shrl $18,%edx3283addl %edi,%ecx3284movl %esi,%edi3285adcl $0,%edx3286shll $8,%edi3287shrl $24,%esi3288addl %edi,%edx3289adcl $0,%esi3290movl %esi,%edi3291andl $3,%esi3292shrl $2,%edi3293leal (%edi,%edi,4),%ebp3294movl 24(%esp),%edi3295addl %ebp,%eax3296movl 28(%esp),%ebp3297adcl $0,%ebx3298adcl $0,%ecx3299adcl $0,%edx3300adcl $0,%esi3301movd %eax,%xmm03302addl $5,%eax3303movd %ebx,%xmm13304adcl $0,%ebx3305movd %ecx,%xmm23306adcl $0,%ecx3307movd %edx,%xmm33308adcl $0,%edx3309adcl $0,%esi3310shrl $2,%esi3311negl %esi3312andl %esi,%eax3313andl %esi,%ebx3314andl %esi,%ecx3315andl %esi,%edx3316movl %eax,(%edi)3317movd %xmm0,%eax3318movl %ebx,4(%edi)3319movd %xmm1,%ebx3320movl %ecx,8(%edi)3321movd %xmm2,%ecx3322movl %edx,12(%edi)3323movd %xmm3,%edx3324notl %esi3325andl %esi,%eax3326andl %esi,%ebx3327orl (%edi),%eax3328andl %esi,%ecx3329orl 4(%edi),%ebx3330andl %esi,%edx3331orl 8(%edi),%ecx3332orl 12(%edi),%edx3333addl (%ebp),%eax3334adcl 4(%ebp),%ebx3335movl %eax,(%edi)3336adcl 8(%ebp),%ecx3337movl %ebx,4(%edi)3338adcl 12(%ebp),%edx3339movl %ecx,8(%edi)3340movl %edx,12(%edi)3341popl %edi3342popl %esi3343popl %ebx3344popl %ebp3345ret3346.size _poly1305_emit_sse2,.-_poly1305_emit_sse23347.align 323348.type _poly1305_init_avx2,@function3349.align 163350_poly1305_init_avx2:3351#ifdef __CET__33523353.byte 243,15,30,2513354#endif33553356vmovdqu 24(%edi),%xmm43357leal 48(%edi),%edi3358movl %esp,%ebp3359subl $224,%esp3360andl $-16,%esp3361vmovdqa 64(%ebx),%xmm73362vpand %xmm7,%xmm4,%xmm03363vpsrlq $26,%xmm4,%xmm13364vpsrldq $6,%xmm4,%xmm33365vpand %xmm7,%xmm1,%xmm13366vpsrlq $4,%xmm3,%xmm23367vpsrlq $30,%xmm3,%xmm33368vpand %xmm7,%xmm2,%xmm23369vpand %xmm7,%xmm3,%xmm33370vpsrldq $13,%xmm4,%xmm43371leal 144(%esp),%edx3372movl $2,%ecx3373.L018square:3374vmovdqa %xmm0,(%esp)3375vmovdqa %xmm1,16(%esp)3376vmovdqa %xmm2,32(%esp)3377vmovdqa %xmm3,48(%esp)3378vmovdqa %xmm4,64(%esp)3379vpslld $2,%xmm1,%xmm63380vpslld $2,%xmm2,%xmm53381vpaddd %xmm1,%xmm6,%xmm63382vpaddd %xmm2,%xmm5,%xmm53383vmovdqa %xmm6,80(%esp)3384vmovdqa %xmm5,96(%esp)3385vpslld $2,%xmm3,%xmm63386vpslld $2,%xmm4,%xmm53387vpaddd %xmm3,%xmm6,%xmm63388vpaddd %xmm4,%xmm5,%xmm53389vmovdqa %xmm6,112(%esp)3390vmovdqa %xmm5,128(%esp)3391vpshufd $68,%xmm0,%xmm53392vmovdqa %xmm1,%xmm63393vpshufd $68,%xmm1,%xmm13394vpshufd $68,%xmm2,%xmm23395vpshufd $68,%xmm3,%xmm33396vpshufd $68,%xmm4,%xmm43397vmovdqa %xmm5,(%edx)3398vmovdqa %xmm1,16(%edx)3399vmovdqa %xmm2,32(%edx)3400vmovdqa %xmm3,48(%edx)3401vmovdqa %xmm4,64(%edx)3402vpmuludq %xmm0,%xmm4,%xmm43403vpmuludq %xmm0,%xmm3,%xmm33404vpmuludq %xmm0,%xmm2,%xmm23405vpmuludq %xmm0,%xmm1,%xmm13406vpmuludq %xmm0,%xmm5,%xmm03407vpmuludq 48(%edx),%xmm6,%xmm53408vpaddq %xmm5,%xmm4,%xmm43409vpmuludq 32(%edx),%xmm6,%xmm73410vpaddq %xmm7,%xmm3,%xmm33411vpmuludq 16(%edx),%xmm6,%xmm53412vpaddq %xmm5,%xmm2,%xmm23413vmovdqa 80(%esp),%xmm73414vpmuludq (%edx),%xmm6,%xmm63415vpaddq %xmm6,%xmm1,%xmm13416vmovdqa 32(%esp),%xmm53417vpmuludq 64(%edx),%xmm7,%xmm73418vpaddq %xmm7,%xmm0,%xmm03419vpmuludq 32(%edx),%xmm5,%xmm63420vpaddq %xmm6,%xmm4,%xmm43421vpmuludq 16(%edx),%xmm5,%xmm73422vpaddq %xmm7,%xmm3,%xmm33423vmovdqa 96(%esp),%xmm63424vpmuludq (%edx),%xmm5,%xmm53425vpaddq %xmm5,%xmm2,%xmm23426vpmuludq 64(%edx),%xmm6,%xmm73427vpaddq %xmm7,%xmm1,%xmm13428vmovdqa 48(%esp),%xmm53429vpmuludq 48(%edx),%xmm6,%xmm63430vpaddq %xmm6,%xmm0,%xmm03431vpmuludq 16(%edx),%xmm5,%xmm73432vpaddq %xmm7,%xmm4,%xmm43433vmovdqa 112(%esp),%xmm63434vpmuludq (%edx),%xmm5,%xmm53435vpaddq %xmm5,%xmm3,%xmm33436vpmuludq 64(%edx),%xmm6,%xmm73437vpaddq %xmm7,%xmm2,%xmm23438vpmuludq 48(%edx),%xmm6,%xmm53439vpaddq %xmm5,%xmm1,%xmm13440vmovdqa 64(%esp),%xmm73441vpmuludq 32(%edx),%xmm6,%xmm63442vpaddq %xmm6,%xmm0,%xmm03443vmovdqa 128(%esp),%xmm53444vpmuludq (%edx),%xmm7,%xmm73445vpaddq %xmm7,%xmm4,%xmm43446vpmuludq 64(%edx),%xmm5,%xmm63447vpaddq %xmm6,%xmm3,%xmm33448vpmuludq 16(%edx),%xmm5,%xmm73449vpaddq %xmm7,%xmm0,%xmm03450vpmuludq 32(%edx),%xmm5,%xmm63451vpaddq %xmm6,%xmm1,%xmm13452vmovdqa 64(%ebx),%xmm73453vpmuludq 48(%edx),%xmm5,%xmm53454vpaddq %xmm5,%xmm2,%xmm23455vpsrlq $26,%xmm3,%xmm53456vpand %xmm7,%xmm3,%xmm33457vpsrlq $26,%xmm0,%xmm63458vpand %xmm7,%xmm0,%xmm03459vpaddq %xmm5,%xmm4,%xmm43460vpaddq %xmm6,%xmm1,%xmm13461vpsrlq $26,%xmm4,%xmm53462vpand %xmm7,%xmm4,%xmm43463vpsrlq $26,%xmm1,%xmm63464vpand %xmm7,%xmm1,%xmm13465vpaddq %xmm6,%xmm2,%xmm23466vpaddd %xmm5,%xmm0,%xmm03467vpsllq $2,%xmm5,%xmm53468vpsrlq $26,%xmm2,%xmm63469vpand %xmm7,%xmm2,%xmm23470vpaddd %xmm5,%xmm0,%xmm03471vpaddd %xmm6,%xmm3,%xmm33472vpsrlq $26,%xmm3,%xmm63473vpsrlq $26,%xmm0,%xmm53474vpand %xmm7,%xmm0,%xmm03475vpand %xmm7,%xmm3,%xmm33476vpaddd %xmm5,%xmm1,%xmm13477vpaddd %xmm6,%xmm4,%xmm43478decl %ecx3479jz .L019square_break3480vpunpcklqdq (%esp),%xmm0,%xmm03481vpunpcklqdq 16(%esp),%xmm1,%xmm13482vpunpcklqdq 32(%esp),%xmm2,%xmm23483vpunpcklqdq 48(%esp),%xmm3,%xmm33484vpunpcklqdq 64(%esp),%xmm4,%xmm43485jmp .L018square3486.L019square_break:3487vpsllq $32,%xmm0,%xmm03488vpsllq $32,%xmm1,%xmm13489vpsllq $32,%xmm2,%xmm23490vpsllq $32,%xmm3,%xmm33491vpsllq $32,%xmm4,%xmm43492vpor (%esp),%xmm0,%xmm03493vpor 16(%esp),%xmm1,%xmm13494vpor 32(%esp),%xmm2,%xmm23495vpor 48(%esp),%xmm3,%xmm33496vpor 64(%esp),%xmm4,%xmm43497vpshufd $141,%xmm0,%xmm03498vpshufd $141,%xmm1,%xmm13499vpshufd $141,%xmm2,%xmm23500vpshufd $141,%xmm3,%xmm33501vpshufd $141,%xmm4,%xmm43502vmovdqu %xmm0,(%edi)3503vmovdqu %xmm1,16(%edi)3504vmovdqu %xmm2,32(%edi)3505vmovdqu %xmm3,48(%edi)3506vmovdqu %xmm4,64(%edi)3507vpslld $2,%xmm1,%xmm63508vpslld $2,%xmm2,%xmm53509vpaddd %xmm1,%xmm6,%xmm63510vpaddd %xmm2,%xmm5,%xmm53511vmovdqu %xmm6,80(%edi)3512vmovdqu %xmm5,96(%edi)3513vpslld $2,%xmm3,%xmm63514vpslld $2,%xmm4,%xmm53515vpaddd %xmm3,%xmm6,%xmm63516vpaddd %xmm4,%xmm5,%xmm53517vmovdqu %xmm6,112(%edi)3518vmovdqu %xmm5,128(%edi)3519movl %ebp,%esp3520leal -48(%edi),%edi3521ret3522.size _poly1305_init_avx2,.-_poly1305_init_avx23523.align 323524.type _poly1305_blocks_avx2,@function3525.align 163526_poly1305_blocks_avx2:3527#ifdef __CET__35283529.byte 243,15,30,2513530#endif35313532pushl %ebp3533pushl %ebx3534pushl %esi3535pushl %edi3536movl 20(%esp),%edi3537movl 24(%esp),%esi3538movl 28(%esp),%ecx3539movl 20(%edi),%eax3540andl $-16,%ecx3541jz .L020nodata3542cmpl $64,%ecx3543jae .L021enter_avx23544testl %eax,%eax3545jz .Lenter_blocks3546.L021enter_avx2:3547vzeroupper3548call .L022pic_point3549.L022pic_point:3550popl %ebx3551leal .Lconst_sse2-.L022pic_point(%ebx),%ebx3552testl %eax,%eax3553jnz .L023base2_263554call _poly1305_init_avx23555movl (%edi),%eax3556movl 3(%edi),%ecx3557movl 6(%edi),%edx3558movl 9(%edi),%esi3559movl 13(%edi),%ebp3560shrl $2,%ecx3561andl $67108863,%eax3562shrl $4,%edx3563andl $67108863,%ecx3564shrl $6,%esi3565andl $67108863,%edx3566movl %eax,(%edi)3567movl %ecx,4(%edi)3568movl %edx,8(%edi)3569movl %esi,12(%edi)3570movl %ebp,16(%edi)3571movl $1,20(%edi)3572movl 24(%esp),%esi3573movl 28(%esp),%ecx3574.L023base2_26:3575movl 32(%esp),%eax3576movl %esp,%ebp3577subl $448,%esp3578andl $-512,%esp3579vmovdqu 48(%edi),%xmm03580leal 288(%esp),%edx3581vmovdqu 64(%edi),%xmm13582vmovdqu 80(%edi),%xmm23583vmovdqu 96(%edi),%xmm33584vmovdqu 112(%edi),%xmm43585leal 48(%edi),%edi3586vpermq $64,%ymm0,%ymm03587vpermq $64,%ymm1,%ymm13588vpermq $64,%ymm2,%ymm23589vpermq $64,%ymm3,%ymm33590vpermq $64,%ymm4,%ymm43591vpshufd $200,%ymm0,%ymm03592vpshufd $200,%ymm1,%ymm13593vpshufd $200,%ymm2,%ymm23594vpshufd $200,%ymm3,%ymm33595vpshufd $200,%ymm4,%ymm43596vmovdqa %ymm0,-128(%edx)3597vmovdqu 80(%edi),%xmm03598vmovdqa %ymm1,-96(%edx)3599vmovdqu 96(%edi),%xmm13600vmovdqa %ymm2,-64(%edx)3601vmovdqu 112(%edi),%xmm23602vmovdqa %ymm3,-32(%edx)3603vmovdqu 128(%edi),%xmm33604vmovdqa %ymm4,(%edx)3605vpermq $64,%ymm0,%ymm03606vpermq $64,%ymm1,%ymm13607vpermq $64,%ymm2,%ymm23608vpermq $64,%ymm3,%ymm33609vpshufd $200,%ymm0,%ymm03610vpshufd $200,%ymm1,%ymm13611vpshufd $200,%ymm2,%ymm23612vpshufd $200,%ymm3,%ymm33613vmovdqa %ymm0,32(%edx)3614vmovd -48(%edi),%xmm03615vmovdqa %ymm1,64(%edx)3616vmovd -44(%edi),%xmm13617vmovdqa %ymm2,96(%edx)3618vmovd -40(%edi),%xmm23619vmovdqa %ymm3,128(%edx)3620vmovd -36(%edi),%xmm33621vmovd -32(%edi),%xmm43622vmovdqa 64(%ebx),%ymm73623negl %eax3624testl $63,%ecx3625jz .L024even3626movl %ecx,%edx3627andl $-64,%ecx3628andl $63,%edx3629vmovdqu (%esi),%xmm53630cmpl $32,%edx3631jb .L025one3632vmovdqu 16(%esi),%xmm63633je .L026two3634vinserti128 $1,32(%esi),%ymm5,%ymm53635leal 48(%esi),%esi3636leal 8(%ebx),%ebx3637leal 296(%esp),%edx3638jmp .L027tail3639.L026two:3640leal 32(%esi),%esi3641leal 16(%ebx),%ebx3642leal 304(%esp),%edx3643jmp .L027tail3644.L025one:3645leal 16(%esi),%esi3646vpxor %ymm6,%ymm6,%ymm63647leal 32(%ebx,%eax,8),%ebx3648leal 312(%esp),%edx3649jmp .L027tail3650.align 323651.L024even:3652vmovdqu (%esi),%xmm53653vmovdqu 16(%esi),%xmm63654vinserti128 $1,32(%esi),%ymm5,%ymm53655vinserti128 $1,48(%esi),%ymm6,%ymm63656leal 64(%esi),%esi3657subl $64,%ecx3658jz .L027tail3659.L028loop:3660vmovdqa %ymm2,64(%esp)3661vpsrldq $6,%ymm5,%ymm23662vmovdqa %ymm0,(%esp)3663vpsrldq $6,%ymm6,%ymm03664vmovdqa %ymm1,32(%esp)3665vpunpckhqdq %ymm6,%ymm5,%ymm13666vpunpcklqdq %ymm6,%ymm5,%ymm53667vpunpcklqdq %ymm0,%ymm2,%ymm23668vpsrlq $30,%ymm2,%ymm03669vpsrlq $4,%ymm2,%ymm23670vpsrlq $26,%ymm5,%ymm63671vpsrlq $40,%ymm1,%ymm13672vpand %ymm7,%ymm2,%ymm23673vpand %ymm7,%ymm5,%ymm53674vpand %ymm7,%ymm6,%ymm63675vpand %ymm7,%ymm0,%ymm03676vpor (%ebx),%ymm1,%ymm13677vpaddq 64(%esp),%ymm2,%ymm23678vpaddq (%esp),%ymm5,%ymm53679vpaddq 32(%esp),%ymm6,%ymm63680vpaddq %ymm3,%ymm0,%ymm03681vpaddq %ymm4,%ymm1,%ymm13682vpmuludq -96(%edx),%ymm2,%ymm33683vmovdqa %ymm6,32(%esp)3684vpmuludq -64(%edx),%ymm2,%ymm43685vmovdqa %ymm0,96(%esp)3686vpmuludq 96(%edx),%ymm2,%ymm03687vmovdqa %ymm1,128(%esp)3688vpmuludq 128(%edx),%ymm2,%ymm13689vpmuludq -128(%edx),%ymm2,%ymm23690vpmuludq -32(%edx),%ymm5,%ymm73691vpaddq %ymm7,%ymm3,%ymm33692vpmuludq (%edx),%ymm5,%ymm63693vpaddq %ymm6,%ymm4,%ymm43694vpmuludq -128(%edx),%ymm5,%ymm73695vpaddq %ymm7,%ymm0,%ymm03696vmovdqa 32(%esp),%ymm73697vpmuludq -96(%edx),%ymm5,%ymm63698vpaddq %ymm6,%ymm1,%ymm13699vpmuludq -64(%edx),%ymm5,%ymm53700vpaddq %ymm5,%ymm2,%ymm23701vpmuludq -64(%edx),%ymm7,%ymm63702vpaddq %ymm6,%ymm3,%ymm33703vpmuludq -32(%edx),%ymm7,%ymm53704vpaddq %ymm5,%ymm4,%ymm43705vpmuludq 128(%edx),%ymm7,%ymm63706vpaddq %ymm6,%ymm0,%ymm03707vmovdqa 96(%esp),%ymm63708vpmuludq -128(%edx),%ymm7,%ymm53709vpaddq %ymm5,%ymm1,%ymm13710vpmuludq -96(%edx),%ymm7,%ymm73711vpaddq %ymm7,%ymm2,%ymm23712vpmuludq -128(%edx),%ymm6,%ymm53713vpaddq %ymm5,%ymm3,%ymm33714vpmuludq -96(%edx),%ymm6,%ymm73715vpaddq %ymm7,%ymm4,%ymm43716vpmuludq 64(%edx),%ymm6,%ymm53717vpaddq %ymm5,%ymm0,%ymm03718vmovdqa 128(%esp),%ymm53719vpmuludq 96(%edx),%ymm6,%ymm73720vpaddq %ymm7,%ymm1,%ymm13721vpmuludq 128(%edx),%ymm6,%ymm63722vpaddq %ymm6,%ymm2,%ymm23723vpmuludq 128(%edx),%ymm5,%ymm73724vpaddq %ymm7,%ymm3,%ymm33725vpmuludq 32(%edx),%ymm5,%ymm63726vpaddq %ymm6,%ymm0,%ymm03727vpmuludq -128(%edx),%ymm5,%ymm73728vpaddq %ymm7,%ymm4,%ymm43729vmovdqa 64(%ebx),%ymm73730vpmuludq 64(%edx),%ymm5,%ymm63731vpaddq %ymm6,%ymm1,%ymm13732vpmuludq 96(%edx),%ymm5,%ymm53733vpaddq %ymm5,%ymm2,%ymm23734vpsrlq $26,%ymm3,%ymm53735vpand %ymm7,%ymm3,%ymm33736vpsrlq $26,%ymm0,%ymm63737vpand %ymm7,%ymm0,%ymm03738vpaddq %ymm5,%ymm4,%ymm43739vpaddq %ymm6,%ymm1,%ymm13740vpsrlq $26,%ymm4,%ymm53741vpand %ymm7,%ymm4,%ymm43742vpsrlq $26,%ymm1,%ymm63743vpand %ymm7,%ymm1,%ymm13744vpaddq %ymm6,%ymm2,%ymm23745vpaddq %ymm5,%ymm0,%ymm03746vpsllq $2,%ymm5,%ymm53747vpsrlq $26,%ymm2,%ymm63748vpand %ymm7,%ymm2,%ymm23749vpaddq %ymm5,%ymm0,%ymm03750vpaddq %ymm6,%ymm3,%ymm33751vpsrlq $26,%ymm3,%ymm63752vpsrlq $26,%ymm0,%ymm53753vpand %ymm7,%ymm0,%ymm03754vpand %ymm7,%ymm3,%ymm33755vpaddq %ymm5,%ymm1,%ymm13756vpaddq %ymm6,%ymm4,%ymm43757vmovdqu (%esi),%xmm53758vmovdqu 16(%esi),%xmm63759vinserti128 $1,32(%esi),%ymm5,%ymm53760vinserti128 $1,48(%esi),%ymm6,%ymm63761leal 64(%esi),%esi3762subl $64,%ecx3763jnz .L028loop3764.L027tail:3765vmovdqa %ymm2,64(%esp)3766vpsrldq $6,%ymm5,%ymm23767vmovdqa %ymm0,(%esp)3768vpsrldq $6,%ymm6,%ymm03769vmovdqa %ymm1,32(%esp)3770vpunpckhqdq %ymm6,%ymm5,%ymm13771vpunpcklqdq %ymm6,%ymm5,%ymm53772vpunpcklqdq %ymm0,%ymm2,%ymm23773vpsrlq $30,%ymm2,%ymm03774vpsrlq $4,%ymm2,%ymm23775vpsrlq $26,%ymm5,%ymm63776vpsrlq $40,%ymm1,%ymm13777vpand %ymm7,%ymm2,%ymm23778vpand %ymm7,%ymm5,%ymm53779vpand %ymm7,%ymm6,%ymm63780vpand %ymm7,%ymm0,%ymm03781vpor (%ebx),%ymm1,%ymm13782andl $-64,%ebx3783vpaddq 64(%esp),%ymm2,%ymm23784vpaddq (%esp),%ymm5,%ymm53785vpaddq 32(%esp),%ymm6,%ymm63786vpaddq %ymm3,%ymm0,%ymm03787vpaddq %ymm4,%ymm1,%ymm13788vpmuludq -92(%edx),%ymm2,%ymm33789vmovdqa %ymm6,32(%esp)3790vpmuludq -60(%edx),%ymm2,%ymm43791vmovdqa %ymm0,96(%esp)3792vpmuludq 100(%edx),%ymm2,%ymm03793vmovdqa %ymm1,128(%esp)3794vpmuludq 132(%edx),%ymm2,%ymm13795vpmuludq -124(%edx),%ymm2,%ymm23796vpmuludq -28(%edx),%ymm5,%ymm73797vpaddq %ymm7,%ymm3,%ymm33798vpmuludq 4(%edx),%ymm5,%ymm63799vpaddq %ymm6,%ymm4,%ymm43800vpmuludq -124(%edx),%ymm5,%ymm73801vpaddq %ymm7,%ymm0,%ymm03802vmovdqa 32(%esp),%ymm73803vpmuludq -92(%edx),%ymm5,%ymm63804vpaddq %ymm6,%ymm1,%ymm13805vpmuludq -60(%edx),%ymm5,%ymm53806vpaddq %ymm5,%ymm2,%ymm23807vpmuludq -60(%edx),%ymm7,%ymm63808vpaddq %ymm6,%ymm3,%ymm33809vpmuludq -28(%edx),%ymm7,%ymm53810vpaddq %ymm5,%ymm4,%ymm43811vpmuludq 132(%edx),%ymm7,%ymm63812vpaddq %ymm6,%ymm0,%ymm03813vmovdqa 96(%esp),%ymm63814vpmuludq -124(%edx),%ymm7,%ymm53815vpaddq %ymm5,%ymm1,%ymm13816vpmuludq -92(%edx),%ymm7,%ymm73817vpaddq %ymm7,%ymm2,%ymm23818vpmuludq -124(%edx),%ymm6,%ymm53819vpaddq %ymm5,%ymm3,%ymm33820vpmuludq -92(%edx),%ymm6,%ymm73821vpaddq %ymm7,%ymm4,%ymm43822vpmuludq 68(%edx),%ymm6,%ymm53823vpaddq %ymm5,%ymm0,%ymm03824vmovdqa 128(%esp),%ymm53825vpmuludq 100(%edx),%ymm6,%ymm73826vpaddq %ymm7,%ymm1,%ymm13827vpmuludq 132(%edx),%ymm6,%ymm63828vpaddq %ymm6,%ymm2,%ymm23829vpmuludq 132(%edx),%ymm5,%ymm73830vpaddq %ymm7,%ymm3,%ymm33831vpmuludq 36(%edx),%ymm5,%ymm63832vpaddq %ymm6,%ymm0,%ymm03833vpmuludq -124(%edx),%ymm5,%ymm73834vpaddq %ymm7,%ymm4,%ymm43835vmovdqa 64(%ebx),%ymm73836vpmuludq 68(%edx),%ymm5,%ymm63837vpaddq %ymm6,%ymm1,%ymm13838vpmuludq 100(%edx),%ymm5,%ymm53839vpaddq %ymm5,%ymm2,%ymm23840vpsrldq $8,%ymm4,%ymm53841vpsrldq $8,%ymm3,%ymm63842vpaddq %ymm5,%ymm4,%ymm43843vpsrldq $8,%ymm0,%ymm53844vpaddq %ymm6,%ymm3,%ymm33845vpsrldq $8,%ymm1,%ymm63846vpaddq %ymm5,%ymm0,%ymm03847vpsrldq $8,%ymm2,%ymm53848vpaddq %ymm6,%ymm1,%ymm13849vpermq $2,%ymm4,%ymm63850vpaddq %ymm5,%ymm2,%ymm23851vpermq $2,%ymm3,%ymm53852vpaddq %ymm6,%ymm4,%ymm43853vpermq $2,%ymm0,%ymm63854vpaddq %ymm5,%ymm3,%ymm33855vpermq $2,%ymm1,%ymm53856vpaddq %ymm6,%ymm0,%ymm03857vpermq $2,%ymm2,%ymm63858vpaddq %ymm5,%ymm1,%ymm13859vpaddq %ymm6,%ymm2,%ymm23860vpsrlq $26,%ymm3,%ymm53861vpand %ymm7,%ymm3,%ymm33862vpsrlq $26,%ymm0,%ymm63863vpand %ymm7,%ymm0,%ymm03864vpaddq %ymm5,%ymm4,%ymm43865vpaddq %ymm6,%ymm1,%ymm13866vpsrlq $26,%ymm4,%ymm53867vpand %ymm7,%ymm4,%ymm43868vpsrlq $26,%ymm1,%ymm63869vpand %ymm7,%ymm1,%ymm13870vpaddq %ymm6,%ymm2,%ymm23871vpaddq %ymm5,%ymm0,%ymm03872vpsllq $2,%ymm5,%ymm53873vpsrlq $26,%ymm2,%ymm63874vpand %ymm7,%ymm2,%ymm23875vpaddq %ymm5,%ymm0,%ymm03876vpaddq %ymm6,%ymm3,%ymm33877vpsrlq $26,%ymm3,%ymm63878vpsrlq $26,%ymm0,%ymm53879vpand %ymm7,%ymm0,%ymm03880vpand %ymm7,%ymm3,%ymm33881vpaddq %ymm5,%ymm1,%ymm13882vpaddq %ymm6,%ymm4,%ymm43883cmpl $0,%ecx3884je .L029done3885vpshufd $252,%xmm0,%xmm03886leal 288(%esp),%edx3887vpshufd $252,%xmm1,%xmm13888vpshufd $252,%xmm2,%xmm23889vpshufd $252,%xmm3,%xmm33890vpshufd $252,%xmm4,%xmm43891jmp .L024even3892.align 163893.L029done:3894vmovd %xmm0,-48(%edi)3895vmovd %xmm1,-44(%edi)3896vmovd %xmm2,-40(%edi)3897vmovd %xmm3,-36(%edi)3898vmovd %xmm4,-32(%edi)3899vzeroupper3900movl %ebp,%esp3901.L020nodata:3902popl %edi3903popl %esi3904popl %ebx3905popl %ebp3906ret3907.size _poly1305_blocks_avx2,.-_poly1305_blocks_avx23908.align 643909.Lconst_sse2:3910.long 16777216,0,16777216,0,16777216,0,16777216,03911.long 0,0,0,0,0,0,0,03912.long 67108863,0,67108863,0,67108863,0,67108863,03913.long 268435455,268435452,268435452,2684354523914.byte 80,111,108,121,49,51,48,53,32,102,111,114,32,120,56,543915.byte 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,323916.byte 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,1113917.byte 114,103,62,03918.align 43919.comm OPENSSL_ia32cap_P,40,439203921.section ".note.gnu.property", "a"3922.p2align 23923.long 1f - 0f3924.long 4f - 1f3925.long 539260:3927.asciz "GNU"39281:3929.p2align 23930.long 0xc00000023931.long 3f - 2f39322:3933.long 339343:3935.p2align 239364:3937#endif393839393940