Path: blob/main/sys/crypto/openssl/i386/ghash-x86.S
39483 views
/* Do not modify. This file is auto-generated from ghash-x86.pl. */1#ifdef PIC2.text3.globl gcm_gmult_4bit_x864.type gcm_gmult_4bit_x86,@function5.align 166gcm_gmult_4bit_x86:7.L_gcm_gmult_4bit_x86_begin:8#ifdef __CET__910.byte 243,15,30,25111#endif1213pushl %ebp14pushl %ebx15pushl %esi16pushl %edi17subl $84,%esp18movl 104(%esp),%edi19movl 108(%esp),%esi20movl (%edi),%ebp21movl 4(%edi),%edx22movl 8(%edi),%ecx23movl 12(%edi),%ebx24movl $0,16(%esp)25movl $471859200,20(%esp)26movl $943718400,24(%esp)27movl $610271232,28(%esp)28movl $1887436800,32(%esp)29movl $1822425088,36(%esp)30movl $1220542464,40(%esp)31movl $1423966208,44(%esp)32movl $3774873600,48(%esp)33movl $4246732800,52(%esp)34movl $3644850176,56(%esp)35movl $3311403008,60(%esp)36movl $2441084928,64(%esp)37movl $2376073216,68(%esp)38movl $2847932416,72(%esp)39movl $3051356160,76(%esp)40movl %ebp,(%esp)41movl %edx,4(%esp)42movl %ecx,8(%esp)43movl %ebx,12(%esp)44shrl $20,%ebx45andl $240,%ebx46movl 4(%esi,%ebx,1),%ebp47movl (%esi,%ebx,1),%edx48movl 12(%esi,%ebx,1),%ecx49movl 8(%esi,%ebx,1),%ebx50xorl %eax,%eax51movl $15,%edi52jmp .L000x86_loop53.align 1654.L000x86_loop:55movb %bl,%al56shrdl $4,%ecx,%ebx57andb $15,%al58shrdl $4,%edx,%ecx59shrdl $4,%ebp,%edx60shrl $4,%ebp61xorl 16(%esp,%eax,4),%ebp62movb (%esp,%edi,1),%al63andb $240,%al64xorl 8(%esi,%eax,1),%ebx65xorl 12(%esi,%eax,1),%ecx66xorl (%esi,%eax,1),%edx67xorl 4(%esi,%eax,1),%ebp68decl %edi69js .L001x86_break70movb %bl,%al71shrdl $4,%ecx,%ebx72andb $15,%al73shrdl $4,%edx,%ecx74shrdl $4,%ebp,%edx75shrl $4,%ebp76xorl 16(%esp,%eax,4),%ebp77movb (%esp,%edi,1),%al78shlb $4,%al79xorl 8(%esi,%eax,1),%ebx80xorl 12(%esi,%eax,1),%ecx81xorl (%esi,%eax,1),%edx82xorl 4(%esi,%eax,1),%ebp83jmp .L000x86_loop84.align 1685.L001x86_break:86bswap %ebx87bswap %ecx88bswap %edx89bswap %ebp90movl 104(%esp),%edi91movl %ebx,12(%edi)92movl %ecx,8(%edi)93movl %edx,4(%edi)94movl %ebp,(%edi)95addl $84,%esp96popl %edi97popl %esi98popl %ebx99popl %ebp100ret101.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin102.globl gcm_ghash_4bit_x86103.type gcm_ghash_4bit_x86,@function104.align 16105gcm_ghash_4bit_x86:106.L_gcm_ghash_4bit_x86_begin:107#ifdef __CET__108109.byte 243,15,30,251110#endif111112pushl %ebp113pushl %ebx114pushl %esi115pushl %edi116subl $84,%esp117movl 104(%esp),%ebx118movl 108(%esp),%esi119movl 112(%esp),%edi120movl 116(%esp),%ecx121addl %edi,%ecx122movl %ecx,116(%esp)123movl (%ebx),%ebp124movl 4(%ebx),%edx125movl 8(%ebx),%ecx126movl 12(%ebx),%ebx127movl $0,16(%esp)128movl $471859200,20(%esp)129movl $943718400,24(%esp)130movl $610271232,28(%esp)131movl $1887436800,32(%esp)132movl $1822425088,36(%esp)133movl $1220542464,40(%esp)134movl $1423966208,44(%esp)135movl $3774873600,48(%esp)136movl $4246732800,52(%esp)137movl $3644850176,56(%esp)138movl $3311403008,60(%esp)139movl $2441084928,64(%esp)140movl $2376073216,68(%esp)141movl $2847932416,72(%esp)142movl $3051356160,76(%esp)143.align 16144.L002x86_outer_loop:145xorl 12(%edi),%ebx146xorl 8(%edi),%ecx147xorl 4(%edi),%edx148xorl (%edi),%ebp149movl %ebx,12(%esp)150movl %ecx,8(%esp)151movl %edx,4(%esp)152movl %ebp,(%esp)153shrl $20,%ebx154andl $240,%ebx155movl 4(%esi,%ebx,1),%ebp156movl (%esi,%ebx,1),%edx157movl 12(%esi,%ebx,1),%ecx158movl 8(%esi,%ebx,1),%ebx159xorl %eax,%eax160movl $15,%edi161jmp .L003x86_loop162.align 16163.L003x86_loop:164movb %bl,%al165shrdl $4,%ecx,%ebx166andb $15,%al167shrdl $4,%edx,%ecx168shrdl $4,%ebp,%edx169shrl $4,%ebp170xorl 16(%esp,%eax,4),%ebp171movb (%esp,%edi,1),%al172andb $240,%al173xorl 8(%esi,%eax,1),%ebx174xorl 12(%esi,%eax,1),%ecx175xorl (%esi,%eax,1),%edx176xorl 4(%esi,%eax,1),%ebp177decl %edi178js .L004x86_break179movb %bl,%al180shrdl $4,%ecx,%ebx181andb $15,%al182shrdl $4,%edx,%ecx183shrdl $4,%ebp,%edx184shrl $4,%ebp185xorl 16(%esp,%eax,4),%ebp186movb (%esp,%edi,1),%al187shlb $4,%al188xorl 8(%esi,%eax,1),%ebx189xorl 12(%esi,%eax,1),%ecx190xorl (%esi,%eax,1),%edx191xorl 4(%esi,%eax,1),%ebp192jmp .L003x86_loop193.align 16194.L004x86_break:195bswap %ebx196bswap %ecx197bswap %edx198bswap %ebp199movl 112(%esp),%edi200leal 16(%edi),%edi201cmpl 116(%esp),%edi202movl %edi,112(%esp)203jb .L002x86_outer_loop204movl 104(%esp),%edi205movl %ebx,12(%edi)206movl %ecx,8(%edi)207movl %edx,4(%edi)208movl %ebp,(%edi)209addl $84,%esp210popl %edi211popl %esi212popl %ebx213popl %ebp214ret215.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin216.globl gcm_gmult_4bit_mmx217.type gcm_gmult_4bit_mmx,@function218.align 16219gcm_gmult_4bit_mmx:220.L_gcm_gmult_4bit_mmx_begin:221#ifdef __CET__222223.byte 243,15,30,251224#endif225226pushl %ebp227pushl %ebx228pushl %esi229pushl %edi230movl 20(%esp),%edi231movl 24(%esp),%esi232call .L005pic_point233.L005pic_point:234popl %eax235leal .Lrem_4bit-.L005pic_point(%eax),%eax236movzbl 15(%edi),%ebx237xorl %ecx,%ecx238movl %ebx,%edx239movb %dl,%cl240movl $14,%ebp241shlb $4,%cl242andl $240,%edx243movq 8(%esi,%ecx,1),%mm0244movq (%esi,%ecx,1),%mm1245movd %mm0,%ebx246jmp .L006mmx_loop247.align 16248.L006mmx_loop:249psrlq $4,%mm0250andl $15,%ebx251movq %mm1,%mm2252psrlq $4,%mm1253pxor 8(%esi,%edx,1),%mm0254movb (%edi,%ebp,1),%cl255psllq $60,%mm2256pxor (%eax,%ebx,8),%mm1257decl %ebp258movd %mm0,%ebx259pxor (%esi,%edx,1),%mm1260movl %ecx,%edx261pxor %mm2,%mm0262js .L007mmx_break263shlb $4,%cl264andl $15,%ebx265psrlq $4,%mm0266andl $240,%edx267movq %mm1,%mm2268psrlq $4,%mm1269pxor 8(%esi,%ecx,1),%mm0270psllq $60,%mm2271pxor (%eax,%ebx,8),%mm1272movd %mm0,%ebx273pxor (%esi,%ecx,1),%mm1274pxor %mm2,%mm0275jmp .L006mmx_loop276.align 16277.L007mmx_break:278shlb $4,%cl279andl $15,%ebx280psrlq $4,%mm0281andl $240,%edx282movq %mm1,%mm2283psrlq $4,%mm1284pxor 8(%esi,%ecx,1),%mm0285psllq $60,%mm2286pxor (%eax,%ebx,8),%mm1287movd %mm0,%ebx288pxor (%esi,%ecx,1),%mm1289pxor %mm2,%mm0290psrlq $4,%mm0291andl $15,%ebx292movq %mm1,%mm2293psrlq $4,%mm1294pxor 8(%esi,%edx,1),%mm0295psllq $60,%mm2296pxor (%eax,%ebx,8),%mm1297movd %mm0,%ebx298pxor (%esi,%edx,1),%mm1299pxor %mm2,%mm0300psrlq $32,%mm0301movd %mm1,%edx302psrlq $32,%mm1303movd %mm0,%ecx304movd %mm1,%ebp305bswap %ebx306bswap %edx307bswap %ecx308bswap %ebp309emms310movl %ebx,12(%edi)311movl %edx,4(%edi)312movl %ecx,8(%edi)313movl %ebp,(%edi)314popl %edi315popl %esi316popl %ebx317popl %ebp318ret319.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin320.globl gcm_ghash_4bit_mmx321.type gcm_ghash_4bit_mmx,@function322.align 16323gcm_ghash_4bit_mmx:324.L_gcm_ghash_4bit_mmx_begin:325#ifdef __CET__326327.byte 243,15,30,251328#endif329330pushl %ebp331pushl %ebx332pushl %esi333pushl %edi334movl 20(%esp),%eax335movl 24(%esp),%ebx336movl 28(%esp),%ecx337movl 32(%esp),%edx338movl %esp,%ebp339call .L008pic_point340.L008pic_point:341popl %esi342leal .Lrem_8bit-.L008pic_point(%esi),%esi343subl $544,%esp344andl $-64,%esp345subl $16,%esp346addl %ecx,%edx347movl %eax,544(%esp)348movl %edx,552(%esp)349movl %ebp,556(%esp)350addl $128,%ebx351leal 144(%esp),%edi352leal 400(%esp),%ebp353movl -120(%ebx),%edx354movq -120(%ebx),%mm0355movq -128(%ebx),%mm3356shll $4,%edx357movb %dl,(%esp)358movl -104(%ebx),%edx359movq -104(%ebx),%mm2360movq -112(%ebx),%mm5361movq %mm0,-128(%edi)362psrlq $4,%mm0363movq %mm3,(%edi)364movq %mm3,%mm7365psrlq $4,%mm3366shll $4,%edx367movb %dl,1(%esp)368movl -88(%ebx),%edx369movq -88(%ebx),%mm1370psllq $60,%mm7371movq -96(%ebx),%mm4372por %mm7,%mm0373movq %mm2,-120(%edi)374psrlq $4,%mm2375movq %mm5,8(%edi)376movq %mm5,%mm6377movq %mm0,-128(%ebp)378psrlq $4,%mm5379movq %mm3,(%ebp)380shll $4,%edx381movb %dl,2(%esp)382movl -72(%ebx),%edx383movq -72(%ebx),%mm0384psllq $60,%mm6385movq -80(%ebx),%mm3386por %mm6,%mm2387movq %mm1,-112(%edi)388psrlq $4,%mm1389movq %mm4,16(%edi)390movq %mm4,%mm7391movq %mm2,-120(%ebp)392psrlq $4,%mm4393movq %mm5,8(%ebp)394shll $4,%edx395movb %dl,3(%esp)396movl -56(%ebx),%edx397movq -56(%ebx),%mm2398psllq $60,%mm7399movq -64(%ebx),%mm5400por %mm7,%mm1401movq %mm0,-104(%edi)402psrlq $4,%mm0403movq %mm3,24(%edi)404movq %mm3,%mm6405movq %mm1,-112(%ebp)406psrlq $4,%mm3407movq %mm4,16(%ebp)408shll $4,%edx409movb %dl,4(%esp)410movl -40(%ebx),%edx411movq -40(%ebx),%mm1412psllq $60,%mm6413movq -48(%ebx),%mm4414por %mm6,%mm0415movq %mm2,-96(%edi)416psrlq $4,%mm2417movq %mm5,32(%edi)418movq %mm5,%mm7419movq %mm0,-104(%ebp)420psrlq $4,%mm5421movq %mm3,24(%ebp)422shll $4,%edx423movb %dl,5(%esp)424movl -24(%ebx),%edx425movq -24(%ebx),%mm0426psllq $60,%mm7427movq -32(%ebx),%mm3428por %mm7,%mm2429movq %mm1,-88(%edi)430psrlq $4,%mm1431movq %mm4,40(%edi)432movq %mm4,%mm6433movq %mm2,-96(%ebp)434psrlq $4,%mm4435movq %mm5,32(%ebp)436shll $4,%edx437movb %dl,6(%esp)438movl -8(%ebx),%edx439movq -8(%ebx),%mm2440psllq $60,%mm6441movq -16(%ebx),%mm5442por %mm6,%mm1443movq %mm0,-80(%edi)444psrlq $4,%mm0445movq %mm3,48(%edi)446movq %mm3,%mm7447movq %mm1,-88(%ebp)448psrlq $4,%mm3449movq %mm4,40(%ebp)450shll $4,%edx451movb %dl,7(%esp)452movl 8(%ebx),%edx453movq 8(%ebx),%mm1454psllq $60,%mm7455movq (%ebx),%mm4456por %mm7,%mm0457movq %mm2,-72(%edi)458psrlq $4,%mm2459movq %mm5,56(%edi)460movq %mm5,%mm6461movq %mm0,-80(%ebp)462psrlq $4,%mm5463movq %mm3,48(%ebp)464shll $4,%edx465movb %dl,8(%esp)466movl 24(%ebx),%edx467movq 24(%ebx),%mm0468psllq $60,%mm6469movq 16(%ebx),%mm3470por %mm6,%mm2471movq %mm1,-64(%edi)472psrlq $4,%mm1473movq %mm4,64(%edi)474movq %mm4,%mm7475movq %mm2,-72(%ebp)476psrlq $4,%mm4477movq %mm5,56(%ebp)478shll $4,%edx479movb %dl,9(%esp)480movl 40(%ebx),%edx481movq 40(%ebx),%mm2482psllq $60,%mm7483movq 32(%ebx),%mm5484por %mm7,%mm1485movq %mm0,-56(%edi)486psrlq $4,%mm0487movq %mm3,72(%edi)488movq %mm3,%mm6489movq %mm1,-64(%ebp)490psrlq $4,%mm3491movq %mm4,64(%ebp)492shll $4,%edx493movb %dl,10(%esp)494movl 56(%ebx),%edx495movq 56(%ebx),%mm1496psllq $60,%mm6497movq 48(%ebx),%mm4498por %mm6,%mm0499movq %mm2,-48(%edi)500psrlq $4,%mm2501movq %mm5,80(%edi)502movq %mm5,%mm7503movq %mm0,-56(%ebp)504psrlq $4,%mm5505movq %mm3,72(%ebp)506shll $4,%edx507movb %dl,11(%esp)508movl 72(%ebx),%edx509movq 72(%ebx),%mm0510psllq $60,%mm7511movq 64(%ebx),%mm3512por %mm7,%mm2513movq %mm1,-40(%edi)514psrlq $4,%mm1515movq %mm4,88(%edi)516movq %mm4,%mm6517movq %mm2,-48(%ebp)518psrlq $4,%mm4519movq %mm5,80(%ebp)520shll $4,%edx521movb %dl,12(%esp)522movl 88(%ebx),%edx523movq 88(%ebx),%mm2524psllq $60,%mm6525movq 80(%ebx),%mm5526por %mm6,%mm1527movq %mm0,-32(%edi)528psrlq $4,%mm0529movq %mm3,96(%edi)530movq %mm3,%mm7531movq %mm1,-40(%ebp)532psrlq $4,%mm3533movq %mm4,88(%ebp)534shll $4,%edx535movb %dl,13(%esp)536movl 104(%ebx),%edx537movq 104(%ebx),%mm1538psllq $60,%mm7539movq 96(%ebx),%mm4540por %mm7,%mm0541movq %mm2,-24(%edi)542psrlq $4,%mm2543movq %mm5,104(%edi)544movq %mm5,%mm6545movq %mm0,-32(%ebp)546psrlq $4,%mm5547movq %mm3,96(%ebp)548shll $4,%edx549movb %dl,14(%esp)550movl 120(%ebx),%edx551movq 120(%ebx),%mm0552psllq $60,%mm6553movq 112(%ebx),%mm3554por %mm6,%mm2555movq %mm1,-16(%edi)556psrlq $4,%mm1557movq %mm4,112(%edi)558movq %mm4,%mm7559movq %mm2,-24(%ebp)560psrlq $4,%mm4561movq %mm5,104(%ebp)562shll $4,%edx563movb %dl,15(%esp)564psllq $60,%mm7565por %mm7,%mm1566movq %mm0,-8(%edi)567psrlq $4,%mm0568movq %mm3,120(%edi)569movq %mm3,%mm6570movq %mm1,-16(%ebp)571psrlq $4,%mm3572movq %mm4,112(%ebp)573psllq $60,%mm6574por %mm6,%mm0575movq %mm0,-8(%ebp)576movq %mm3,120(%ebp)577movq (%eax),%mm6578movl 8(%eax),%ebx579movl 12(%eax),%edx580.align 16581.L009outer:582xorl 12(%ecx),%edx583xorl 8(%ecx),%ebx584pxor (%ecx),%mm6585leal 16(%ecx),%ecx586movl %ebx,536(%esp)587movq %mm6,528(%esp)588movl %ecx,548(%esp)589xorl %eax,%eax590roll $8,%edx591movb %dl,%al592movl %eax,%ebp593andb $15,%al594shrl $4,%ebp595pxor %mm0,%mm0596roll $8,%edx597pxor %mm1,%mm1598pxor %mm2,%mm2599movq 16(%esp,%eax,8),%mm7600movq 144(%esp,%eax,8),%mm6601movb %dl,%al602movd %mm7,%ebx603psrlq $8,%mm7604movq %mm6,%mm3605movl %eax,%edi606psrlq $8,%mm6607pxor 272(%esp,%ebp,8),%mm7608andb $15,%al609psllq $56,%mm3610shrl $4,%edi611pxor 16(%esp,%eax,8),%mm7612roll $8,%edx613pxor 144(%esp,%eax,8),%mm6614pxor %mm3,%mm7615pxor 400(%esp,%ebp,8),%mm6616xorb (%esp,%ebp,1),%bl617movb %dl,%al618movd %mm7,%ecx619movzbl %bl,%ebx620psrlq $8,%mm7621movq %mm6,%mm3622movl %eax,%ebp623psrlq $8,%mm6624pxor 272(%esp,%edi,8),%mm7625andb $15,%al626psllq $56,%mm3627shrl $4,%ebp628pinsrw $2,(%esi,%ebx,2),%mm2629pxor 16(%esp,%eax,8),%mm7630roll $8,%edx631pxor 144(%esp,%eax,8),%mm6632pxor %mm3,%mm7633pxor 400(%esp,%edi,8),%mm6634xorb (%esp,%edi,1),%cl635movb %dl,%al636movl 536(%esp),%edx637movd %mm7,%ebx638movzbl %cl,%ecx639psrlq $8,%mm7640movq %mm6,%mm3641movl %eax,%edi642psrlq $8,%mm6643pxor 272(%esp,%ebp,8),%mm7644andb $15,%al645psllq $56,%mm3646pxor %mm2,%mm6647shrl $4,%edi648pinsrw $2,(%esi,%ecx,2),%mm1649pxor 16(%esp,%eax,8),%mm7650roll $8,%edx651pxor 144(%esp,%eax,8),%mm6652pxor %mm3,%mm7653pxor 400(%esp,%ebp,8),%mm6654xorb (%esp,%ebp,1),%bl655movb %dl,%al656movd %mm7,%ecx657movzbl %bl,%ebx658psrlq $8,%mm7659movq %mm6,%mm3660movl %eax,%ebp661psrlq $8,%mm6662pxor 272(%esp,%edi,8),%mm7663andb $15,%al664psllq $56,%mm3665pxor %mm1,%mm6666shrl $4,%ebp667pinsrw $2,(%esi,%ebx,2),%mm0668pxor 16(%esp,%eax,8),%mm7669roll $8,%edx670pxor 144(%esp,%eax,8),%mm6671pxor %mm3,%mm7672pxor 400(%esp,%edi,8),%mm6673xorb (%esp,%edi,1),%cl674movb %dl,%al675movd %mm7,%ebx676movzbl %cl,%ecx677psrlq $8,%mm7678movq %mm6,%mm3679movl %eax,%edi680psrlq $8,%mm6681pxor 272(%esp,%ebp,8),%mm7682andb $15,%al683psllq $56,%mm3684pxor %mm0,%mm6685shrl $4,%edi686pinsrw $2,(%esi,%ecx,2),%mm2687pxor 16(%esp,%eax,8),%mm7688roll $8,%edx689pxor 144(%esp,%eax,8),%mm6690pxor %mm3,%mm7691pxor 400(%esp,%ebp,8),%mm6692xorb (%esp,%ebp,1),%bl693movb %dl,%al694movd %mm7,%ecx695movzbl %bl,%ebx696psrlq $8,%mm7697movq %mm6,%mm3698movl %eax,%ebp699psrlq $8,%mm6700pxor 272(%esp,%edi,8),%mm7701andb $15,%al702psllq $56,%mm3703pxor %mm2,%mm6704shrl $4,%ebp705pinsrw $2,(%esi,%ebx,2),%mm1706pxor 16(%esp,%eax,8),%mm7707roll $8,%edx708pxor 144(%esp,%eax,8),%mm6709pxor %mm3,%mm7710pxor 400(%esp,%edi,8),%mm6711xorb (%esp,%edi,1),%cl712movb %dl,%al713movl 532(%esp),%edx714movd %mm7,%ebx715movzbl %cl,%ecx716psrlq $8,%mm7717movq %mm6,%mm3718movl %eax,%edi719psrlq $8,%mm6720pxor 272(%esp,%ebp,8),%mm7721andb $15,%al722psllq $56,%mm3723pxor %mm1,%mm6724shrl $4,%edi725pinsrw $2,(%esi,%ecx,2),%mm0726pxor 16(%esp,%eax,8),%mm7727roll $8,%edx728pxor 144(%esp,%eax,8),%mm6729pxor %mm3,%mm7730pxor 400(%esp,%ebp,8),%mm6731xorb (%esp,%ebp,1),%bl732movb %dl,%al733movd %mm7,%ecx734movzbl %bl,%ebx735psrlq $8,%mm7736movq %mm6,%mm3737movl %eax,%ebp738psrlq $8,%mm6739pxor 272(%esp,%edi,8),%mm7740andb $15,%al741psllq $56,%mm3742pxor %mm0,%mm6743shrl $4,%ebp744pinsrw $2,(%esi,%ebx,2),%mm2745pxor 16(%esp,%eax,8),%mm7746roll $8,%edx747pxor 144(%esp,%eax,8),%mm6748pxor %mm3,%mm7749pxor 400(%esp,%edi,8),%mm6750xorb (%esp,%edi,1),%cl751movb %dl,%al752movd %mm7,%ebx753movzbl %cl,%ecx754psrlq $8,%mm7755movq %mm6,%mm3756movl %eax,%edi757psrlq $8,%mm6758pxor 272(%esp,%ebp,8),%mm7759andb $15,%al760psllq $56,%mm3761pxor %mm2,%mm6762shrl $4,%edi763pinsrw $2,(%esi,%ecx,2),%mm1764pxor 16(%esp,%eax,8),%mm7765roll $8,%edx766pxor 144(%esp,%eax,8),%mm6767pxor %mm3,%mm7768pxor 400(%esp,%ebp,8),%mm6769xorb (%esp,%ebp,1),%bl770movb %dl,%al771movd %mm7,%ecx772movzbl %bl,%ebx773psrlq $8,%mm7774movq %mm6,%mm3775movl %eax,%ebp776psrlq $8,%mm6777pxor 272(%esp,%edi,8),%mm7778andb $15,%al779psllq $56,%mm3780pxor %mm1,%mm6781shrl $4,%ebp782pinsrw $2,(%esi,%ebx,2),%mm0783pxor 16(%esp,%eax,8),%mm7784roll $8,%edx785pxor 144(%esp,%eax,8),%mm6786pxor %mm3,%mm7787pxor 400(%esp,%edi,8),%mm6788xorb (%esp,%edi,1),%cl789movb %dl,%al790movl 528(%esp),%edx791movd %mm7,%ebx792movzbl %cl,%ecx793psrlq $8,%mm7794movq %mm6,%mm3795movl %eax,%edi796psrlq $8,%mm6797pxor 272(%esp,%ebp,8),%mm7798andb $15,%al799psllq $56,%mm3800pxor %mm0,%mm6801shrl $4,%edi802pinsrw $2,(%esi,%ecx,2),%mm2803pxor 16(%esp,%eax,8),%mm7804roll $8,%edx805pxor 144(%esp,%eax,8),%mm6806pxor %mm3,%mm7807pxor 400(%esp,%ebp,8),%mm6808xorb (%esp,%ebp,1),%bl809movb %dl,%al810movd %mm7,%ecx811movzbl %bl,%ebx812psrlq $8,%mm7813movq %mm6,%mm3814movl %eax,%ebp815psrlq $8,%mm6816pxor 272(%esp,%edi,8),%mm7817andb $15,%al818psllq $56,%mm3819pxor %mm2,%mm6820shrl $4,%ebp821pinsrw $2,(%esi,%ebx,2),%mm1822pxor 16(%esp,%eax,8),%mm7823roll $8,%edx824pxor 144(%esp,%eax,8),%mm6825pxor %mm3,%mm7826pxor 400(%esp,%edi,8),%mm6827xorb (%esp,%edi,1),%cl828movb %dl,%al829movd %mm7,%ebx830movzbl %cl,%ecx831psrlq $8,%mm7832movq %mm6,%mm3833movl %eax,%edi834psrlq $8,%mm6835pxor 272(%esp,%ebp,8),%mm7836andb $15,%al837psllq $56,%mm3838pxor %mm1,%mm6839shrl $4,%edi840pinsrw $2,(%esi,%ecx,2),%mm0841pxor 16(%esp,%eax,8),%mm7842roll $8,%edx843pxor 144(%esp,%eax,8),%mm6844pxor %mm3,%mm7845pxor 400(%esp,%ebp,8),%mm6846xorb (%esp,%ebp,1),%bl847movb %dl,%al848movd %mm7,%ecx849movzbl %bl,%ebx850psrlq $8,%mm7851movq %mm6,%mm3852movl %eax,%ebp853psrlq $8,%mm6854pxor 272(%esp,%edi,8),%mm7855andb $15,%al856psllq $56,%mm3857pxor %mm0,%mm6858shrl $4,%ebp859pinsrw $2,(%esi,%ebx,2),%mm2860pxor 16(%esp,%eax,8),%mm7861roll $8,%edx862pxor 144(%esp,%eax,8),%mm6863pxor %mm3,%mm7864pxor 400(%esp,%edi,8),%mm6865xorb (%esp,%edi,1),%cl866movb %dl,%al867movl 524(%esp),%edx868movd %mm7,%ebx869movzbl %cl,%ecx870psrlq $8,%mm7871movq %mm6,%mm3872movl %eax,%edi873psrlq $8,%mm6874pxor 272(%esp,%ebp,8),%mm7875andb $15,%al876psllq $56,%mm3877pxor %mm2,%mm6878shrl $4,%edi879pinsrw $2,(%esi,%ecx,2),%mm1880pxor 16(%esp,%eax,8),%mm7881pxor 144(%esp,%eax,8),%mm6882xorb (%esp,%ebp,1),%bl883pxor %mm3,%mm7884pxor 400(%esp,%ebp,8),%mm6885movzbl %bl,%ebx886pxor %mm2,%mm2887psllq $4,%mm1888movd %mm7,%ecx889psrlq $4,%mm7890movq %mm6,%mm3891psrlq $4,%mm6892shll $4,%ecx893pxor 16(%esp,%edi,8),%mm7894psllq $60,%mm3895movzbl %cl,%ecx896pxor %mm3,%mm7897pxor 144(%esp,%edi,8),%mm6898pinsrw $2,(%esi,%ebx,2),%mm0899pxor %mm1,%mm6900movd %mm7,%edx901pinsrw $3,(%esi,%ecx,2),%mm2902psllq $12,%mm0903pxor %mm0,%mm6904psrlq $32,%mm7905pxor %mm2,%mm6906movl 548(%esp),%ecx907movd %mm7,%ebx908movq %mm6,%mm3909psllw $8,%mm6910psrlw $8,%mm3911por %mm3,%mm6912bswap %edx913pshufw $27,%mm6,%mm6914bswap %ebx915cmpl 552(%esp),%ecx916jne .L009outer917movl 544(%esp),%eax918movl %edx,12(%eax)919movl %ebx,8(%eax)920movq %mm6,(%eax)921movl 556(%esp),%esp922emms923popl %edi924popl %esi925popl %ebx926popl %ebp927ret928.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin929.globl gcm_init_clmul930.type gcm_init_clmul,@function931.align 16932gcm_init_clmul:933.L_gcm_init_clmul_begin:934#ifdef __CET__935936.byte 243,15,30,251937#endif938939movl 4(%esp),%edx940movl 8(%esp),%eax941call .L010pic942.L010pic:943popl %ecx944leal .Lbswap-.L010pic(%ecx),%ecx945movdqu (%eax),%xmm2946pshufd $78,%xmm2,%xmm2947pshufd $255,%xmm2,%xmm4948movdqa %xmm2,%xmm3949psllq $1,%xmm2950pxor %xmm5,%xmm5951psrlq $63,%xmm3952pcmpgtd %xmm4,%xmm5953pslldq $8,%xmm3954por %xmm3,%xmm2955pand 16(%ecx),%xmm5956pxor %xmm5,%xmm2957movdqa %xmm2,%xmm0958movdqa %xmm0,%xmm1959pshufd $78,%xmm0,%xmm3960pshufd $78,%xmm2,%xmm4961pxor %xmm0,%xmm3962pxor %xmm2,%xmm4963.byte 102,15,58,68,194,0964.byte 102,15,58,68,202,17965.byte 102,15,58,68,220,0966xorps %xmm0,%xmm3967xorps %xmm1,%xmm3968movdqa %xmm3,%xmm4969psrldq $8,%xmm3970pslldq $8,%xmm4971pxor %xmm3,%xmm1972pxor %xmm4,%xmm0973movdqa %xmm0,%xmm4974movdqa %xmm0,%xmm3975psllq $5,%xmm0976pxor %xmm0,%xmm3977psllq $1,%xmm0978pxor %xmm3,%xmm0979psllq $57,%xmm0980movdqa %xmm0,%xmm3981pslldq $8,%xmm0982psrldq $8,%xmm3983pxor %xmm4,%xmm0984pxor %xmm3,%xmm1985movdqa %xmm0,%xmm4986psrlq $1,%xmm0987pxor %xmm4,%xmm1988pxor %xmm0,%xmm4989psrlq $5,%xmm0990pxor %xmm4,%xmm0991psrlq $1,%xmm0992pxor %xmm1,%xmm0993pshufd $78,%xmm2,%xmm3994pshufd $78,%xmm0,%xmm4995pxor %xmm2,%xmm3996movdqu %xmm2,(%edx)997pxor %xmm0,%xmm4998movdqu %xmm0,16(%edx)999.byte 102,15,58,15,227,81000movdqu %xmm4,32(%edx)1001ret1002.size gcm_init_clmul,.-.L_gcm_init_clmul_begin1003.globl gcm_gmult_clmul1004.type gcm_gmult_clmul,@function1005.align 161006gcm_gmult_clmul:1007.L_gcm_gmult_clmul_begin:1008#ifdef __CET__10091010.byte 243,15,30,2511011#endif10121013movl 4(%esp),%eax1014movl 8(%esp),%edx1015call .L011pic1016.L011pic:1017popl %ecx1018leal .Lbswap-.L011pic(%ecx),%ecx1019movdqu (%eax),%xmm01020movdqa (%ecx),%xmm51021movups (%edx),%xmm21022.byte 102,15,56,0,1971023movups 32(%edx),%xmm41024movdqa %xmm0,%xmm11025pshufd $78,%xmm0,%xmm31026pxor %xmm0,%xmm31027.byte 102,15,58,68,194,01028.byte 102,15,58,68,202,171029.byte 102,15,58,68,220,01030xorps %xmm0,%xmm31031xorps %xmm1,%xmm31032movdqa %xmm3,%xmm41033psrldq $8,%xmm31034pslldq $8,%xmm41035pxor %xmm3,%xmm11036pxor %xmm4,%xmm01037movdqa %xmm0,%xmm41038movdqa %xmm0,%xmm31039psllq $5,%xmm01040pxor %xmm0,%xmm31041psllq $1,%xmm01042pxor %xmm3,%xmm01043psllq $57,%xmm01044movdqa %xmm0,%xmm31045pslldq $8,%xmm01046psrldq $8,%xmm31047pxor %xmm4,%xmm01048pxor %xmm3,%xmm11049movdqa %xmm0,%xmm41050psrlq $1,%xmm01051pxor %xmm4,%xmm11052pxor %xmm0,%xmm41053psrlq $5,%xmm01054pxor %xmm4,%xmm01055psrlq $1,%xmm01056pxor %xmm1,%xmm01057.byte 102,15,56,0,1971058movdqu %xmm0,(%eax)1059ret1060.size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin1061.globl gcm_ghash_clmul1062.type gcm_ghash_clmul,@function1063.align 161064gcm_ghash_clmul:1065.L_gcm_ghash_clmul_begin:1066#ifdef __CET__10671068.byte 243,15,30,2511069#endif10701071pushl %ebp1072pushl %ebx1073pushl %esi1074pushl %edi1075movl 20(%esp),%eax1076movl 24(%esp),%edx1077movl 28(%esp),%esi1078movl 32(%esp),%ebx1079call .L012pic1080.L012pic:1081popl %ecx1082leal .Lbswap-.L012pic(%ecx),%ecx1083movdqu (%eax),%xmm01084movdqa (%ecx),%xmm51085movdqu (%edx),%xmm21086.byte 102,15,56,0,1971087subl $16,%ebx1088jz .L013odd_tail1089movdqu (%esi),%xmm31090movdqu 16(%esi),%xmm61091.byte 102,15,56,0,2211092.byte 102,15,56,0,2451093movdqu 32(%edx),%xmm51094pxor %xmm3,%xmm01095pshufd $78,%xmm6,%xmm31096movdqa %xmm6,%xmm71097pxor %xmm6,%xmm31098leal 32(%esi),%esi1099.byte 102,15,58,68,242,01100.byte 102,15,58,68,250,171101.byte 102,15,58,68,221,01102movups 16(%edx),%xmm21103nop1104subl $32,%ebx1105jbe .L014even_tail1106jmp .L015mod_loop1107.align 321108.L015mod_loop:1109pshufd $78,%xmm0,%xmm41110movdqa %xmm0,%xmm11111pxor %xmm0,%xmm41112nop1113.byte 102,15,58,68,194,01114.byte 102,15,58,68,202,171115.byte 102,15,58,68,229,161116movups (%edx),%xmm21117xorps %xmm6,%xmm01118movdqa (%ecx),%xmm51119xorps %xmm7,%xmm11120movdqu (%esi),%xmm71121pxor %xmm0,%xmm31122movdqu 16(%esi),%xmm61123pxor %xmm1,%xmm31124.byte 102,15,56,0,2531125pxor %xmm3,%xmm41126movdqa %xmm4,%xmm31127psrldq $8,%xmm41128pslldq $8,%xmm31129pxor %xmm4,%xmm11130pxor %xmm3,%xmm01131.byte 102,15,56,0,2451132pxor %xmm7,%xmm11133movdqa %xmm6,%xmm71134movdqa %xmm0,%xmm41135movdqa %xmm0,%xmm31136psllq $5,%xmm01137pxor %xmm0,%xmm31138psllq $1,%xmm01139pxor %xmm3,%xmm01140.byte 102,15,58,68,242,01141movups 32(%edx),%xmm51142psllq $57,%xmm01143movdqa %xmm0,%xmm31144pslldq $8,%xmm01145psrldq $8,%xmm31146pxor %xmm4,%xmm01147pxor %xmm3,%xmm11148pshufd $78,%xmm7,%xmm31149movdqa %xmm0,%xmm41150psrlq $1,%xmm01151pxor %xmm7,%xmm31152pxor %xmm4,%xmm11153.byte 102,15,58,68,250,171154movups 16(%edx),%xmm21155pxor %xmm0,%xmm41156psrlq $5,%xmm01157pxor %xmm4,%xmm01158psrlq $1,%xmm01159pxor %xmm1,%xmm01160.byte 102,15,58,68,221,01161leal 32(%esi),%esi1162subl $32,%ebx1163ja .L015mod_loop1164.L014even_tail:1165pshufd $78,%xmm0,%xmm41166movdqa %xmm0,%xmm11167pxor %xmm0,%xmm41168.byte 102,15,58,68,194,01169.byte 102,15,58,68,202,171170.byte 102,15,58,68,229,161171movdqa (%ecx),%xmm51172xorps %xmm6,%xmm01173xorps %xmm7,%xmm11174pxor %xmm0,%xmm31175pxor %xmm1,%xmm31176pxor %xmm3,%xmm41177movdqa %xmm4,%xmm31178psrldq $8,%xmm41179pslldq $8,%xmm31180pxor %xmm4,%xmm11181pxor %xmm3,%xmm01182movdqa %xmm0,%xmm41183movdqa %xmm0,%xmm31184psllq $5,%xmm01185pxor %xmm0,%xmm31186psllq $1,%xmm01187pxor %xmm3,%xmm01188psllq $57,%xmm01189movdqa %xmm0,%xmm31190pslldq $8,%xmm01191psrldq $8,%xmm31192pxor %xmm4,%xmm01193pxor %xmm3,%xmm11194movdqa %xmm0,%xmm41195psrlq $1,%xmm01196pxor %xmm4,%xmm11197pxor %xmm0,%xmm41198psrlq $5,%xmm01199pxor %xmm4,%xmm01200psrlq $1,%xmm01201pxor %xmm1,%xmm01202testl %ebx,%ebx1203jnz .L016done1204movups (%edx),%xmm21205.L013odd_tail:1206movdqu (%esi),%xmm31207.byte 102,15,56,0,2211208pxor %xmm3,%xmm01209movdqa %xmm0,%xmm11210pshufd $78,%xmm0,%xmm31211pshufd $78,%xmm2,%xmm41212pxor %xmm0,%xmm31213pxor %xmm2,%xmm41214.byte 102,15,58,68,194,01215.byte 102,15,58,68,202,171216.byte 102,15,58,68,220,01217xorps %xmm0,%xmm31218xorps %xmm1,%xmm31219movdqa %xmm3,%xmm41220psrldq $8,%xmm31221pslldq $8,%xmm41222pxor %xmm3,%xmm11223pxor %xmm4,%xmm01224movdqa %xmm0,%xmm41225movdqa %xmm0,%xmm31226psllq $5,%xmm01227pxor %xmm0,%xmm31228psllq $1,%xmm01229pxor %xmm3,%xmm01230psllq $57,%xmm01231movdqa %xmm0,%xmm31232pslldq $8,%xmm01233psrldq $8,%xmm31234pxor %xmm4,%xmm01235pxor %xmm3,%xmm11236movdqa %xmm0,%xmm41237psrlq $1,%xmm01238pxor %xmm4,%xmm11239pxor %xmm0,%xmm41240psrlq $5,%xmm01241pxor %xmm4,%xmm01242psrlq $1,%xmm01243pxor %xmm1,%xmm01244.L016done:1245.byte 102,15,56,0,1971246movdqu %xmm0,(%eax)1247popl %edi1248popl %esi1249popl %ebx1250popl %ebp1251ret1252.size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin1253.align 641254.Lbswap:1255.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,01256.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1941257.align 641258.Lrem_8bit:1259.value 0,450,900,582,1800,1738,1164,13581260.value 3600,4050,3476,3158,2328,2266,2716,29101261.value 7200,7650,8100,7782,6952,6890,6316,65101262.value 4656,5106,4532,4214,5432,5370,5820,60141263.value 14400,14722,15300,14854,16200,16010,15564,156301264.value 13904,14226,13780,13334,12632,12442,13020,130861265.value 9312,9634,10212,9766,9064,8874,8428,84941266.value 10864,11186,10740,10294,11640,11450,12028,120941267.value 28800,28994,29444,29382,30600,30282,29708,301581268.value 32400,32594,32020,31958,31128,30810,31260,317101269.value 27808,28002,28452,28390,27560,27242,26668,271181270.value 25264,25458,24884,24822,26040,25722,26172,266221271.value 18624,18690,19268,19078,20424,19978,19532,198541272.value 18128,18194,17748,17558,16856,16410,16988,173101273.value 21728,21794,22372,22182,21480,21034,20588,209101274.value 23280,23346,22900,22710,24056,23610,24188,245101275.value 57600,57538,57988,58182,58888,59338,58764,584461276.value 61200,61138,60564,60758,59416,59866,60316,599981277.value 64800,64738,65188,65382,64040,64490,63916,635981278.value 62256,62194,61620,61814,62520,62970,63420,631021279.value 55616,55426,56004,56070,56904,57226,56780,563341280.value 55120,54930,54484,54550,53336,53658,54236,537901281.value 50528,50338,50916,50982,49768,50090,49644,491981282.value 52080,51890,51444,51510,52344,52666,53244,527981283.value 37248,36930,37380,37830,38536,38730,38156,380941284.value 40848,40530,39956,40406,39064,39258,39708,396461285.value 36256,35938,36388,36838,35496,35690,35116,350541286.value 33712,33394,32820,33270,33976,34170,34620,345581287.value 43456,43010,43588,43910,44744,44810,44364,441741288.value 42960,42514,42068,42390,41176,41242,41820,416301289.value 46560,46114,46692,47014,45800,45866,45420,452301290.value 48112,47666,47220,47542,48376,48442,49020,488301291.align 641292.Lrem_4bit:1293.long 0,0,0,471859200,0,943718400,0,6102712321294.long 0,1887436800,0,1822425088,0,1220542464,0,14239662081295.long 0,3774873600,0,4246732800,0,3644850176,0,33114030081296.long 0,2441084928,0,2376073216,0,2847932416,0,30513561601297.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,671298.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,1121299.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,621300.byte 013011302.section ".note.gnu.property", "a"1303.p2align 21304.long 1f - 0f1305.long 4f - 1f1306.long 513070:1308.asciz "GNU"13091:1310.p2align 21311.long 0xc00000021312.long 3f - 2f13132:1314.long 313153:1316.p2align 213174:1318#else1319.text1320.globl gcm_gmult_4bit_x861321.type gcm_gmult_4bit_x86,@function1322.align 161323gcm_gmult_4bit_x86:1324.L_gcm_gmult_4bit_x86_begin:1325#ifdef __CET__13261327.byte 243,15,30,2511328#endif13291330pushl %ebp1331pushl %ebx1332pushl %esi1333pushl %edi1334subl $84,%esp1335movl 104(%esp),%edi1336movl 108(%esp),%esi1337movl (%edi),%ebp1338movl 4(%edi),%edx1339movl 8(%edi),%ecx1340movl 12(%edi),%ebx1341movl $0,16(%esp)1342movl $471859200,20(%esp)1343movl $943718400,24(%esp)1344movl $610271232,28(%esp)1345movl $1887436800,32(%esp)1346movl $1822425088,36(%esp)1347movl $1220542464,40(%esp)1348movl $1423966208,44(%esp)1349movl $3774873600,48(%esp)1350movl $4246732800,52(%esp)1351movl $3644850176,56(%esp)1352movl $3311403008,60(%esp)1353movl $2441084928,64(%esp)1354movl $2376073216,68(%esp)1355movl $2847932416,72(%esp)1356movl $3051356160,76(%esp)1357movl %ebp,(%esp)1358movl %edx,4(%esp)1359movl %ecx,8(%esp)1360movl %ebx,12(%esp)1361shrl $20,%ebx1362andl $240,%ebx1363movl 4(%esi,%ebx,1),%ebp1364movl (%esi,%ebx,1),%edx1365movl 12(%esi,%ebx,1),%ecx1366movl 8(%esi,%ebx,1),%ebx1367xorl %eax,%eax1368movl $15,%edi1369jmp .L000x86_loop1370.align 161371.L000x86_loop:1372movb %bl,%al1373shrdl $4,%ecx,%ebx1374andb $15,%al1375shrdl $4,%edx,%ecx1376shrdl $4,%ebp,%edx1377shrl $4,%ebp1378xorl 16(%esp,%eax,4),%ebp1379movb (%esp,%edi,1),%al1380andb $240,%al1381xorl 8(%esi,%eax,1),%ebx1382xorl 12(%esi,%eax,1),%ecx1383xorl (%esi,%eax,1),%edx1384xorl 4(%esi,%eax,1),%ebp1385decl %edi1386js .L001x86_break1387movb %bl,%al1388shrdl $4,%ecx,%ebx1389andb $15,%al1390shrdl $4,%edx,%ecx1391shrdl $4,%ebp,%edx1392shrl $4,%ebp1393xorl 16(%esp,%eax,4),%ebp1394movb (%esp,%edi,1),%al1395shlb $4,%al1396xorl 8(%esi,%eax,1),%ebx1397xorl 12(%esi,%eax,1),%ecx1398xorl (%esi,%eax,1),%edx1399xorl 4(%esi,%eax,1),%ebp1400jmp .L000x86_loop1401.align 161402.L001x86_break:1403bswap %ebx1404bswap %ecx1405bswap %edx1406bswap %ebp1407movl 104(%esp),%edi1408movl %ebx,12(%edi)1409movl %ecx,8(%edi)1410movl %edx,4(%edi)1411movl %ebp,(%edi)1412addl $84,%esp1413popl %edi1414popl %esi1415popl %ebx1416popl %ebp1417ret1418.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin1419.globl gcm_ghash_4bit_x861420.type gcm_ghash_4bit_x86,@function1421.align 161422gcm_ghash_4bit_x86:1423.L_gcm_ghash_4bit_x86_begin:1424#ifdef __CET__14251426.byte 243,15,30,2511427#endif14281429pushl %ebp1430pushl %ebx1431pushl %esi1432pushl %edi1433subl $84,%esp1434movl 104(%esp),%ebx1435movl 108(%esp),%esi1436movl 112(%esp),%edi1437movl 116(%esp),%ecx1438addl %edi,%ecx1439movl %ecx,116(%esp)1440movl (%ebx),%ebp1441movl 4(%ebx),%edx1442movl 8(%ebx),%ecx1443movl 12(%ebx),%ebx1444movl $0,16(%esp)1445movl $471859200,20(%esp)1446movl $943718400,24(%esp)1447movl $610271232,28(%esp)1448movl $1887436800,32(%esp)1449movl $1822425088,36(%esp)1450movl $1220542464,40(%esp)1451movl $1423966208,44(%esp)1452movl $3774873600,48(%esp)1453movl $4246732800,52(%esp)1454movl $3644850176,56(%esp)1455movl $3311403008,60(%esp)1456movl $2441084928,64(%esp)1457movl $2376073216,68(%esp)1458movl $2847932416,72(%esp)1459movl $3051356160,76(%esp)1460.align 161461.L002x86_outer_loop:1462xorl 12(%edi),%ebx1463xorl 8(%edi),%ecx1464xorl 4(%edi),%edx1465xorl (%edi),%ebp1466movl %ebx,12(%esp)1467movl %ecx,8(%esp)1468movl %edx,4(%esp)1469movl %ebp,(%esp)1470shrl $20,%ebx1471andl $240,%ebx1472movl 4(%esi,%ebx,1),%ebp1473movl (%esi,%ebx,1),%edx1474movl 12(%esi,%ebx,1),%ecx1475movl 8(%esi,%ebx,1),%ebx1476xorl %eax,%eax1477movl $15,%edi1478jmp .L003x86_loop1479.align 161480.L003x86_loop:1481movb %bl,%al1482shrdl $4,%ecx,%ebx1483andb $15,%al1484shrdl $4,%edx,%ecx1485shrdl $4,%ebp,%edx1486shrl $4,%ebp1487xorl 16(%esp,%eax,4),%ebp1488movb (%esp,%edi,1),%al1489andb $240,%al1490xorl 8(%esi,%eax,1),%ebx1491xorl 12(%esi,%eax,1),%ecx1492xorl (%esi,%eax,1),%edx1493xorl 4(%esi,%eax,1),%ebp1494decl %edi1495js .L004x86_break1496movb %bl,%al1497shrdl $4,%ecx,%ebx1498andb $15,%al1499shrdl $4,%edx,%ecx1500shrdl $4,%ebp,%edx1501shrl $4,%ebp1502xorl 16(%esp,%eax,4),%ebp1503movb (%esp,%edi,1),%al1504shlb $4,%al1505xorl 8(%esi,%eax,1),%ebx1506xorl 12(%esi,%eax,1),%ecx1507xorl (%esi,%eax,1),%edx1508xorl 4(%esi,%eax,1),%ebp1509jmp .L003x86_loop1510.align 161511.L004x86_break:1512bswap %ebx1513bswap %ecx1514bswap %edx1515bswap %ebp1516movl 112(%esp),%edi1517leal 16(%edi),%edi1518cmpl 116(%esp),%edi1519movl %edi,112(%esp)1520jb .L002x86_outer_loop1521movl 104(%esp),%edi1522movl %ebx,12(%edi)1523movl %ecx,8(%edi)1524movl %edx,4(%edi)1525movl %ebp,(%edi)1526addl $84,%esp1527popl %edi1528popl %esi1529popl %ebx1530popl %ebp1531ret1532.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin1533.globl gcm_gmult_4bit_mmx1534.type gcm_gmult_4bit_mmx,@function1535.align 161536gcm_gmult_4bit_mmx:1537.L_gcm_gmult_4bit_mmx_begin:1538#ifdef __CET__15391540.byte 243,15,30,2511541#endif15421543pushl %ebp1544pushl %ebx1545pushl %esi1546pushl %edi1547movl 20(%esp),%edi1548movl 24(%esp),%esi1549call .L005pic_point1550.L005pic_point:1551popl %eax1552leal .Lrem_4bit-.L005pic_point(%eax),%eax1553movzbl 15(%edi),%ebx1554xorl %ecx,%ecx1555movl %ebx,%edx1556movb %dl,%cl1557movl $14,%ebp1558shlb $4,%cl1559andl $240,%edx1560movq 8(%esi,%ecx,1),%mm01561movq (%esi,%ecx,1),%mm11562movd %mm0,%ebx1563jmp .L006mmx_loop1564.align 161565.L006mmx_loop:1566psrlq $4,%mm01567andl $15,%ebx1568movq %mm1,%mm21569psrlq $4,%mm11570pxor 8(%esi,%edx,1),%mm01571movb (%edi,%ebp,1),%cl1572psllq $60,%mm21573pxor (%eax,%ebx,8),%mm11574decl %ebp1575movd %mm0,%ebx1576pxor (%esi,%edx,1),%mm11577movl %ecx,%edx1578pxor %mm2,%mm01579js .L007mmx_break1580shlb $4,%cl1581andl $15,%ebx1582psrlq $4,%mm01583andl $240,%edx1584movq %mm1,%mm21585psrlq $4,%mm11586pxor 8(%esi,%ecx,1),%mm01587psllq $60,%mm21588pxor (%eax,%ebx,8),%mm11589movd %mm0,%ebx1590pxor (%esi,%ecx,1),%mm11591pxor %mm2,%mm01592jmp .L006mmx_loop1593.align 161594.L007mmx_break:1595shlb $4,%cl1596andl $15,%ebx1597psrlq $4,%mm01598andl $240,%edx1599movq %mm1,%mm21600psrlq $4,%mm11601pxor 8(%esi,%ecx,1),%mm01602psllq $60,%mm21603pxor (%eax,%ebx,8),%mm11604movd %mm0,%ebx1605pxor (%esi,%ecx,1),%mm11606pxor %mm2,%mm01607psrlq $4,%mm01608andl $15,%ebx1609movq %mm1,%mm21610psrlq $4,%mm11611pxor 8(%esi,%edx,1),%mm01612psllq $60,%mm21613pxor (%eax,%ebx,8),%mm11614movd %mm0,%ebx1615pxor (%esi,%edx,1),%mm11616pxor %mm2,%mm01617psrlq $32,%mm01618movd %mm1,%edx1619psrlq $32,%mm11620movd %mm0,%ecx1621movd %mm1,%ebp1622bswap %ebx1623bswap %edx1624bswap %ecx1625bswap %ebp1626emms1627movl %ebx,12(%edi)1628movl %edx,4(%edi)1629movl %ecx,8(%edi)1630movl %ebp,(%edi)1631popl %edi1632popl %esi1633popl %ebx1634popl %ebp1635ret1636.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin1637.globl gcm_ghash_4bit_mmx1638.type gcm_ghash_4bit_mmx,@function1639.align 161640gcm_ghash_4bit_mmx:1641.L_gcm_ghash_4bit_mmx_begin:1642#ifdef __CET__16431644.byte 243,15,30,2511645#endif16461647pushl %ebp1648pushl %ebx1649pushl %esi1650pushl %edi1651movl 20(%esp),%eax1652movl 24(%esp),%ebx1653movl 28(%esp),%ecx1654movl 32(%esp),%edx1655movl %esp,%ebp1656call .L008pic_point1657.L008pic_point:1658popl %esi1659leal .Lrem_8bit-.L008pic_point(%esi),%esi1660subl $544,%esp1661andl $-64,%esp1662subl $16,%esp1663addl %ecx,%edx1664movl %eax,544(%esp)1665movl %edx,552(%esp)1666movl %ebp,556(%esp)1667addl $128,%ebx1668leal 144(%esp),%edi1669leal 400(%esp),%ebp1670movl -120(%ebx),%edx1671movq -120(%ebx),%mm01672movq -128(%ebx),%mm31673shll $4,%edx1674movb %dl,(%esp)1675movl -104(%ebx),%edx1676movq -104(%ebx),%mm21677movq -112(%ebx),%mm51678movq %mm0,-128(%edi)1679psrlq $4,%mm01680movq %mm3,(%edi)1681movq %mm3,%mm71682psrlq $4,%mm31683shll $4,%edx1684movb %dl,1(%esp)1685movl -88(%ebx),%edx1686movq -88(%ebx),%mm11687psllq $60,%mm71688movq -96(%ebx),%mm41689por %mm7,%mm01690movq %mm2,-120(%edi)1691psrlq $4,%mm21692movq %mm5,8(%edi)1693movq %mm5,%mm61694movq %mm0,-128(%ebp)1695psrlq $4,%mm51696movq %mm3,(%ebp)1697shll $4,%edx1698movb %dl,2(%esp)1699movl -72(%ebx),%edx1700movq -72(%ebx),%mm01701psllq $60,%mm61702movq -80(%ebx),%mm31703por %mm6,%mm21704movq %mm1,-112(%edi)1705psrlq $4,%mm11706movq %mm4,16(%edi)1707movq %mm4,%mm71708movq %mm2,-120(%ebp)1709psrlq $4,%mm41710movq %mm5,8(%ebp)1711shll $4,%edx1712movb %dl,3(%esp)1713movl -56(%ebx),%edx1714movq -56(%ebx),%mm21715psllq $60,%mm71716movq -64(%ebx),%mm51717por %mm7,%mm11718movq %mm0,-104(%edi)1719psrlq $4,%mm01720movq %mm3,24(%edi)1721movq %mm3,%mm61722movq %mm1,-112(%ebp)1723psrlq $4,%mm31724movq %mm4,16(%ebp)1725shll $4,%edx1726movb %dl,4(%esp)1727movl -40(%ebx),%edx1728movq -40(%ebx),%mm11729psllq $60,%mm61730movq -48(%ebx),%mm41731por %mm6,%mm01732movq %mm2,-96(%edi)1733psrlq $4,%mm21734movq %mm5,32(%edi)1735movq %mm5,%mm71736movq %mm0,-104(%ebp)1737psrlq $4,%mm51738movq %mm3,24(%ebp)1739shll $4,%edx1740movb %dl,5(%esp)1741movl -24(%ebx),%edx1742movq -24(%ebx),%mm01743psllq $60,%mm71744movq -32(%ebx),%mm31745por %mm7,%mm21746movq %mm1,-88(%edi)1747psrlq $4,%mm11748movq %mm4,40(%edi)1749movq %mm4,%mm61750movq %mm2,-96(%ebp)1751psrlq $4,%mm41752movq %mm5,32(%ebp)1753shll $4,%edx1754movb %dl,6(%esp)1755movl -8(%ebx),%edx1756movq -8(%ebx),%mm21757psllq $60,%mm61758movq -16(%ebx),%mm51759por %mm6,%mm11760movq %mm0,-80(%edi)1761psrlq $4,%mm01762movq %mm3,48(%edi)1763movq %mm3,%mm71764movq %mm1,-88(%ebp)1765psrlq $4,%mm31766movq %mm4,40(%ebp)1767shll $4,%edx1768movb %dl,7(%esp)1769movl 8(%ebx),%edx1770movq 8(%ebx),%mm11771psllq $60,%mm71772movq (%ebx),%mm41773por %mm7,%mm01774movq %mm2,-72(%edi)1775psrlq $4,%mm21776movq %mm5,56(%edi)1777movq %mm5,%mm61778movq %mm0,-80(%ebp)1779psrlq $4,%mm51780movq %mm3,48(%ebp)1781shll $4,%edx1782movb %dl,8(%esp)1783movl 24(%ebx),%edx1784movq 24(%ebx),%mm01785psllq $60,%mm61786movq 16(%ebx),%mm31787por %mm6,%mm21788movq %mm1,-64(%edi)1789psrlq $4,%mm11790movq %mm4,64(%edi)1791movq %mm4,%mm71792movq %mm2,-72(%ebp)1793psrlq $4,%mm41794movq %mm5,56(%ebp)1795shll $4,%edx1796movb %dl,9(%esp)1797movl 40(%ebx),%edx1798movq 40(%ebx),%mm21799psllq $60,%mm71800movq 32(%ebx),%mm51801por %mm7,%mm11802movq %mm0,-56(%edi)1803psrlq $4,%mm01804movq %mm3,72(%edi)1805movq %mm3,%mm61806movq %mm1,-64(%ebp)1807psrlq $4,%mm31808movq %mm4,64(%ebp)1809shll $4,%edx1810movb %dl,10(%esp)1811movl 56(%ebx),%edx1812movq 56(%ebx),%mm11813psllq $60,%mm61814movq 48(%ebx),%mm41815por %mm6,%mm01816movq %mm2,-48(%edi)1817psrlq $4,%mm21818movq %mm5,80(%edi)1819movq %mm5,%mm71820movq %mm0,-56(%ebp)1821psrlq $4,%mm51822movq %mm3,72(%ebp)1823shll $4,%edx1824movb %dl,11(%esp)1825movl 72(%ebx),%edx1826movq 72(%ebx),%mm01827psllq $60,%mm71828movq 64(%ebx),%mm31829por %mm7,%mm21830movq %mm1,-40(%edi)1831psrlq $4,%mm11832movq %mm4,88(%edi)1833movq %mm4,%mm61834movq %mm2,-48(%ebp)1835psrlq $4,%mm41836movq %mm5,80(%ebp)1837shll $4,%edx1838movb %dl,12(%esp)1839movl 88(%ebx),%edx1840movq 88(%ebx),%mm21841psllq $60,%mm61842movq 80(%ebx),%mm51843por %mm6,%mm11844movq %mm0,-32(%edi)1845psrlq $4,%mm01846movq %mm3,96(%edi)1847movq %mm3,%mm71848movq %mm1,-40(%ebp)1849psrlq $4,%mm31850movq %mm4,88(%ebp)1851shll $4,%edx1852movb %dl,13(%esp)1853movl 104(%ebx),%edx1854movq 104(%ebx),%mm11855psllq $60,%mm71856movq 96(%ebx),%mm41857por %mm7,%mm01858movq %mm2,-24(%edi)1859psrlq $4,%mm21860movq %mm5,104(%edi)1861movq %mm5,%mm61862movq %mm0,-32(%ebp)1863psrlq $4,%mm51864movq %mm3,96(%ebp)1865shll $4,%edx1866movb %dl,14(%esp)1867movl 120(%ebx),%edx1868movq 120(%ebx),%mm01869psllq $60,%mm61870movq 112(%ebx),%mm31871por %mm6,%mm21872movq %mm1,-16(%edi)1873psrlq $4,%mm11874movq %mm4,112(%edi)1875movq %mm4,%mm71876movq %mm2,-24(%ebp)1877psrlq $4,%mm41878movq %mm5,104(%ebp)1879shll $4,%edx1880movb %dl,15(%esp)1881psllq $60,%mm71882por %mm7,%mm11883movq %mm0,-8(%edi)1884psrlq $4,%mm01885movq %mm3,120(%edi)1886movq %mm3,%mm61887movq %mm1,-16(%ebp)1888psrlq $4,%mm31889movq %mm4,112(%ebp)1890psllq $60,%mm61891por %mm6,%mm01892movq %mm0,-8(%ebp)1893movq %mm3,120(%ebp)1894movq (%eax),%mm61895movl 8(%eax),%ebx1896movl 12(%eax),%edx1897.align 161898.L009outer:1899xorl 12(%ecx),%edx1900xorl 8(%ecx),%ebx1901pxor (%ecx),%mm61902leal 16(%ecx),%ecx1903movl %ebx,536(%esp)1904movq %mm6,528(%esp)1905movl %ecx,548(%esp)1906xorl %eax,%eax1907roll $8,%edx1908movb %dl,%al1909movl %eax,%ebp1910andb $15,%al1911shrl $4,%ebp1912pxor %mm0,%mm01913roll $8,%edx1914pxor %mm1,%mm11915pxor %mm2,%mm21916movq 16(%esp,%eax,8),%mm71917movq 144(%esp,%eax,8),%mm61918movb %dl,%al1919movd %mm7,%ebx1920psrlq $8,%mm71921movq %mm6,%mm31922movl %eax,%edi1923psrlq $8,%mm61924pxor 272(%esp,%ebp,8),%mm71925andb $15,%al1926psllq $56,%mm31927shrl $4,%edi1928pxor 16(%esp,%eax,8),%mm71929roll $8,%edx1930pxor 144(%esp,%eax,8),%mm61931pxor %mm3,%mm71932pxor 400(%esp,%ebp,8),%mm61933xorb (%esp,%ebp,1),%bl1934movb %dl,%al1935movd %mm7,%ecx1936movzbl %bl,%ebx1937psrlq $8,%mm71938movq %mm6,%mm31939movl %eax,%ebp1940psrlq $8,%mm61941pxor 272(%esp,%edi,8),%mm71942andb $15,%al1943psllq $56,%mm31944shrl $4,%ebp1945pinsrw $2,(%esi,%ebx,2),%mm21946pxor 16(%esp,%eax,8),%mm71947roll $8,%edx1948pxor 144(%esp,%eax,8),%mm61949pxor %mm3,%mm71950pxor 400(%esp,%edi,8),%mm61951xorb (%esp,%edi,1),%cl1952movb %dl,%al1953movl 536(%esp),%edx1954movd %mm7,%ebx1955movzbl %cl,%ecx1956psrlq $8,%mm71957movq %mm6,%mm31958movl %eax,%edi1959psrlq $8,%mm61960pxor 272(%esp,%ebp,8),%mm71961andb $15,%al1962psllq $56,%mm31963pxor %mm2,%mm61964shrl $4,%edi1965pinsrw $2,(%esi,%ecx,2),%mm11966pxor 16(%esp,%eax,8),%mm71967roll $8,%edx1968pxor 144(%esp,%eax,8),%mm61969pxor %mm3,%mm71970pxor 400(%esp,%ebp,8),%mm61971xorb (%esp,%ebp,1),%bl1972movb %dl,%al1973movd %mm7,%ecx1974movzbl %bl,%ebx1975psrlq $8,%mm71976movq %mm6,%mm31977movl %eax,%ebp1978psrlq $8,%mm61979pxor 272(%esp,%edi,8),%mm71980andb $15,%al1981psllq $56,%mm31982pxor %mm1,%mm61983shrl $4,%ebp1984pinsrw $2,(%esi,%ebx,2),%mm01985pxor 16(%esp,%eax,8),%mm71986roll $8,%edx1987pxor 144(%esp,%eax,8),%mm61988pxor %mm3,%mm71989pxor 400(%esp,%edi,8),%mm61990xorb (%esp,%edi,1),%cl1991movb %dl,%al1992movd %mm7,%ebx1993movzbl %cl,%ecx1994psrlq $8,%mm71995movq %mm6,%mm31996movl %eax,%edi1997psrlq $8,%mm61998pxor 272(%esp,%ebp,8),%mm71999andb $15,%al2000psllq $56,%mm32001pxor %mm0,%mm62002shrl $4,%edi2003pinsrw $2,(%esi,%ecx,2),%mm22004pxor 16(%esp,%eax,8),%mm72005roll $8,%edx2006pxor 144(%esp,%eax,8),%mm62007pxor %mm3,%mm72008pxor 400(%esp,%ebp,8),%mm62009xorb (%esp,%ebp,1),%bl2010movb %dl,%al2011movd %mm7,%ecx2012movzbl %bl,%ebx2013psrlq $8,%mm72014movq %mm6,%mm32015movl %eax,%ebp2016psrlq $8,%mm62017pxor 272(%esp,%edi,8),%mm72018andb $15,%al2019psllq $56,%mm32020pxor %mm2,%mm62021shrl $4,%ebp2022pinsrw $2,(%esi,%ebx,2),%mm12023pxor 16(%esp,%eax,8),%mm72024roll $8,%edx2025pxor 144(%esp,%eax,8),%mm62026pxor %mm3,%mm72027pxor 400(%esp,%edi,8),%mm62028xorb (%esp,%edi,1),%cl2029movb %dl,%al2030movl 532(%esp),%edx2031movd %mm7,%ebx2032movzbl %cl,%ecx2033psrlq $8,%mm72034movq %mm6,%mm32035movl %eax,%edi2036psrlq $8,%mm62037pxor 272(%esp,%ebp,8),%mm72038andb $15,%al2039psllq $56,%mm32040pxor %mm1,%mm62041shrl $4,%edi2042pinsrw $2,(%esi,%ecx,2),%mm02043pxor 16(%esp,%eax,8),%mm72044roll $8,%edx2045pxor 144(%esp,%eax,8),%mm62046pxor %mm3,%mm72047pxor 400(%esp,%ebp,8),%mm62048xorb (%esp,%ebp,1),%bl2049movb %dl,%al2050movd %mm7,%ecx2051movzbl %bl,%ebx2052psrlq $8,%mm72053movq %mm6,%mm32054movl %eax,%ebp2055psrlq $8,%mm62056pxor 272(%esp,%edi,8),%mm72057andb $15,%al2058psllq $56,%mm32059pxor %mm0,%mm62060shrl $4,%ebp2061pinsrw $2,(%esi,%ebx,2),%mm22062pxor 16(%esp,%eax,8),%mm72063roll $8,%edx2064pxor 144(%esp,%eax,8),%mm62065pxor %mm3,%mm72066pxor 400(%esp,%edi,8),%mm62067xorb (%esp,%edi,1),%cl2068movb %dl,%al2069movd %mm7,%ebx2070movzbl %cl,%ecx2071psrlq $8,%mm72072movq %mm6,%mm32073movl %eax,%edi2074psrlq $8,%mm62075pxor 272(%esp,%ebp,8),%mm72076andb $15,%al2077psllq $56,%mm32078pxor %mm2,%mm62079shrl $4,%edi2080pinsrw $2,(%esi,%ecx,2),%mm12081pxor 16(%esp,%eax,8),%mm72082roll $8,%edx2083pxor 144(%esp,%eax,8),%mm62084pxor %mm3,%mm72085pxor 400(%esp,%ebp,8),%mm62086xorb (%esp,%ebp,1),%bl2087movb %dl,%al2088movd %mm7,%ecx2089movzbl %bl,%ebx2090psrlq $8,%mm72091movq %mm6,%mm32092movl %eax,%ebp2093psrlq $8,%mm62094pxor 272(%esp,%edi,8),%mm72095andb $15,%al2096psllq $56,%mm32097pxor %mm1,%mm62098shrl $4,%ebp2099pinsrw $2,(%esi,%ebx,2),%mm02100pxor 16(%esp,%eax,8),%mm72101roll $8,%edx2102pxor 144(%esp,%eax,8),%mm62103pxor %mm3,%mm72104pxor 400(%esp,%edi,8),%mm62105xorb (%esp,%edi,1),%cl2106movb %dl,%al2107movl 528(%esp),%edx2108movd %mm7,%ebx2109movzbl %cl,%ecx2110psrlq $8,%mm72111movq %mm6,%mm32112movl %eax,%edi2113psrlq $8,%mm62114pxor 272(%esp,%ebp,8),%mm72115andb $15,%al2116psllq $56,%mm32117pxor %mm0,%mm62118shrl $4,%edi2119pinsrw $2,(%esi,%ecx,2),%mm22120pxor 16(%esp,%eax,8),%mm72121roll $8,%edx2122pxor 144(%esp,%eax,8),%mm62123pxor %mm3,%mm72124pxor 400(%esp,%ebp,8),%mm62125xorb (%esp,%ebp,1),%bl2126movb %dl,%al2127movd %mm7,%ecx2128movzbl %bl,%ebx2129psrlq $8,%mm72130movq %mm6,%mm32131movl %eax,%ebp2132psrlq $8,%mm62133pxor 272(%esp,%edi,8),%mm72134andb $15,%al2135psllq $56,%mm32136pxor %mm2,%mm62137shrl $4,%ebp2138pinsrw $2,(%esi,%ebx,2),%mm12139pxor 16(%esp,%eax,8),%mm72140roll $8,%edx2141pxor 144(%esp,%eax,8),%mm62142pxor %mm3,%mm72143pxor 400(%esp,%edi,8),%mm62144xorb (%esp,%edi,1),%cl2145movb %dl,%al2146movd %mm7,%ebx2147movzbl %cl,%ecx2148psrlq $8,%mm72149movq %mm6,%mm32150movl %eax,%edi2151psrlq $8,%mm62152pxor 272(%esp,%ebp,8),%mm72153andb $15,%al2154psllq $56,%mm32155pxor %mm1,%mm62156shrl $4,%edi2157pinsrw $2,(%esi,%ecx,2),%mm02158pxor 16(%esp,%eax,8),%mm72159roll $8,%edx2160pxor 144(%esp,%eax,8),%mm62161pxor %mm3,%mm72162pxor 400(%esp,%ebp,8),%mm62163xorb (%esp,%ebp,1),%bl2164movb %dl,%al2165movd %mm7,%ecx2166movzbl %bl,%ebx2167psrlq $8,%mm72168movq %mm6,%mm32169movl %eax,%ebp2170psrlq $8,%mm62171pxor 272(%esp,%edi,8),%mm72172andb $15,%al2173psllq $56,%mm32174pxor %mm0,%mm62175shrl $4,%ebp2176pinsrw $2,(%esi,%ebx,2),%mm22177pxor 16(%esp,%eax,8),%mm72178roll $8,%edx2179pxor 144(%esp,%eax,8),%mm62180pxor %mm3,%mm72181pxor 400(%esp,%edi,8),%mm62182xorb (%esp,%edi,1),%cl2183movb %dl,%al2184movl 524(%esp),%edx2185movd %mm7,%ebx2186movzbl %cl,%ecx2187psrlq $8,%mm72188movq %mm6,%mm32189movl %eax,%edi2190psrlq $8,%mm62191pxor 272(%esp,%ebp,8),%mm72192andb $15,%al2193psllq $56,%mm32194pxor %mm2,%mm62195shrl $4,%edi2196pinsrw $2,(%esi,%ecx,2),%mm12197pxor 16(%esp,%eax,8),%mm72198pxor 144(%esp,%eax,8),%mm62199xorb (%esp,%ebp,1),%bl2200pxor %mm3,%mm72201pxor 400(%esp,%ebp,8),%mm62202movzbl %bl,%ebx2203pxor %mm2,%mm22204psllq $4,%mm12205movd %mm7,%ecx2206psrlq $4,%mm72207movq %mm6,%mm32208psrlq $4,%mm62209shll $4,%ecx2210pxor 16(%esp,%edi,8),%mm72211psllq $60,%mm32212movzbl %cl,%ecx2213pxor %mm3,%mm72214pxor 144(%esp,%edi,8),%mm62215pinsrw $2,(%esi,%ebx,2),%mm02216pxor %mm1,%mm62217movd %mm7,%edx2218pinsrw $3,(%esi,%ecx,2),%mm22219psllq $12,%mm02220pxor %mm0,%mm62221psrlq $32,%mm72222pxor %mm2,%mm62223movl 548(%esp),%ecx2224movd %mm7,%ebx2225movq %mm6,%mm32226psllw $8,%mm62227psrlw $8,%mm32228por %mm3,%mm62229bswap %edx2230pshufw $27,%mm6,%mm62231bswap %ebx2232cmpl 552(%esp),%ecx2233jne .L009outer2234movl 544(%esp),%eax2235movl %edx,12(%eax)2236movl %ebx,8(%eax)2237movq %mm6,(%eax)2238movl 556(%esp),%esp2239emms2240popl %edi2241popl %esi2242popl %ebx2243popl %ebp2244ret2245.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin2246.globl gcm_init_clmul2247.type gcm_init_clmul,@function2248.align 162249gcm_init_clmul:2250.L_gcm_init_clmul_begin:2251#ifdef __CET__22522253.byte 243,15,30,2512254#endif22552256movl 4(%esp),%edx2257movl 8(%esp),%eax2258call .L010pic2259.L010pic:2260popl %ecx2261leal .Lbswap-.L010pic(%ecx),%ecx2262movdqu (%eax),%xmm22263pshufd $78,%xmm2,%xmm22264pshufd $255,%xmm2,%xmm42265movdqa %xmm2,%xmm32266psllq $1,%xmm22267pxor %xmm5,%xmm52268psrlq $63,%xmm32269pcmpgtd %xmm4,%xmm52270pslldq $8,%xmm32271por %xmm3,%xmm22272pand 16(%ecx),%xmm52273pxor %xmm5,%xmm22274movdqa %xmm2,%xmm02275movdqa %xmm0,%xmm12276pshufd $78,%xmm0,%xmm32277pshufd $78,%xmm2,%xmm42278pxor %xmm0,%xmm32279pxor %xmm2,%xmm42280.byte 102,15,58,68,194,02281.byte 102,15,58,68,202,172282.byte 102,15,58,68,220,02283xorps %xmm0,%xmm32284xorps %xmm1,%xmm32285movdqa %xmm3,%xmm42286psrldq $8,%xmm32287pslldq $8,%xmm42288pxor %xmm3,%xmm12289pxor %xmm4,%xmm02290movdqa %xmm0,%xmm42291movdqa %xmm0,%xmm32292psllq $5,%xmm02293pxor %xmm0,%xmm32294psllq $1,%xmm02295pxor %xmm3,%xmm02296psllq $57,%xmm02297movdqa %xmm0,%xmm32298pslldq $8,%xmm02299psrldq $8,%xmm32300pxor %xmm4,%xmm02301pxor %xmm3,%xmm12302movdqa %xmm0,%xmm42303psrlq $1,%xmm02304pxor %xmm4,%xmm12305pxor %xmm0,%xmm42306psrlq $5,%xmm02307pxor %xmm4,%xmm02308psrlq $1,%xmm02309pxor %xmm1,%xmm02310pshufd $78,%xmm2,%xmm32311pshufd $78,%xmm0,%xmm42312pxor %xmm2,%xmm32313movdqu %xmm2,(%edx)2314pxor %xmm0,%xmm42315movdqu %xmm0,16(%edx)2316.byte 102,15,58,15,227,82317movdqu %xmm4,32(%edx)2318ret2319.size gcm_init_clmul,.-.L_gcm_init_clmul_begin2320.globl gcm_gmult_clmul2321.type gcm_gmult_clmul,@function2322.align 162323gcm_gmult_clmul:2324.L_gcm_gmult_clmul_begin:2325#ifdef __CET__23262327.byte 243,15,30,2512328#endif23292330movl 4(%esp),%eax2331movl 8(%esp),%edx2332call .L011pic2333.L011pic:2334popl %ecx2335leal .Lbswap-.L011pic(%ecx),%ecx2336movdqu (%eax),%xmm02337movdqa (%ecx),%xmm52338movups (%edx),%xmm22339.byte 102,15,56,0,1972340movups 32(%edx),%xmm42341movdqa %xmm0,%xmm12342pshufd $78,%xmm0,%xmm32343pxor %xmm0,%xmm32344.byte 102,15,58,68,194,02345.byte 102,15,58,68,202,172346.byte 102,15,58,68,220,02347xorps %xmm0,%xmm32348xorps %xmm1,%xmm32349movdqa %xmm3,%xmm42350psrldq $8,%xmm32351pslldq $8,%xmm42352pxor %xmm3,%xmm12353pxor %xmm4,%xmm02354movdqa %xmm0,%xmm42355movdqa %xmm0,%xmm32356psllq $5,%xmm02357pxor %xmm0,%xmm32358psllq $1,%xmm02359pxor %xmm3,%xmm02360psllq $57,%xmm02361movdqa %xmm0,%xmm32362pslldq $8,%xmm02363psrldq $8,%xmm32364pxor %xmm4,%xmm02365pxor %xmm3,%xmm12366movdqa %xmm0,%xmm42367psrlq $1,%xmm02368pxor %xmm4,%xmm12369pxor %xmm0,%xmm42370psrlq $5,%xmm02371pxor %xmm4,%xmm02372psrlq $1,%xmm02373pxor %xmm1,%xmm02374.byte 102,15,56,0,1972375movdqu %xmm0,(%eax)2376ret2377.size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin2378.globl gcm_ghash_clmul2379.type gcm_ghash_clmul,@function2380.align 162381gcm_ghash_clmul:2382.L_gcm_ghash_clmul_begin:2383#ifdef __CET__23842385.byte 243,15,30,2512386#endif23872388pushl %ebp2389pushl %ebx2390pushl %esi2391pushl %edi2392movl 20(%esp),%eax2393movl 24(%esp),%edx2394movl 28(%esp),%esi2395movl 32(%esp),%ebx2396call .L012pic2397.L012pic:2398popl %ecx2399leal .Lbswap-.L012pic(%ecx),%ecx2400movdqu (%eax),%xmm02401movdqa (%ecx),%xmm52402movdqu (%edx),%xmm22403.byte 102,15,56,0,1972404subl $16,%ebx2405jz .L013odd_tail2406movdqu (%esi),%xmm32407movdqu 16(%esi),%xmm62408.byte 102,15,56,0,2212409.byte 102,15,56,0,2452410movdqu 32(%edx),%xmm52411pxor %xmm3,%xmm02412pshufd $78,%xmm6,%xmm32413movdqa %xmm6,%xmm72414pxor %xmm6,%xmm32415leal 32(%esi),%esi2416.byte 102,15,58,68,242,02417.byte 102,15,58,68,250,172418.byte 102,15,58,68,221,02419movups 16(%edx),%xmm22420nop2421subl $32,%ebx2422jbe .L014even_tail2423jmp .L015mod_loop2424.align 322425.L015mod_loop:2426pshufd $78,%xmm0,%xmm42427movdqa %xmm0,%xmm12428pxor %xmm0,%xmm42429nop2430.byte 102,15,58,68,194,02431.byte 102,15,58,68,202,172432.byte 102,15,58,68,229,162433movups (%edx),%xmm22434xorps %xmm6,%xmm02435movdqa (%ecx),%xmm52436xorps %xmm7,%xmm12437movdqu (%esi),%xmm72438pxor %xmm0,%xmm32439movdqu 16(%esi),%xmm62440pxor %xmm1,%xmm32441.byte 102,15,56,0,2532442pxor %xmm3,%xmm42443movdqa %xmm4,%xmm32444psrldq $8,%xmm42445pslldq $8,%xmm32446pxor %xmm4,%xmm12447pxor %xmm3,%xmm02448.byte 102,15,56,0,2452449pxor %xmm7,%xmm12450movdqa %xmm6,%xmm72451movdqa %xmm0,%xmm42452movdqa %xmm0,%xmm32453psllq $5,%xmm02454pxor %xmm0,%xmm32455psllq $1,%xmm02456pxor %xmm3,%xmm02457.byte 102,15,58,68,242,02458movups 32(%edx),%xmm52459psllq $57,%xmm02460movdqa %xmm0,%xmm32461pslldq $8,%xmm02462psrldq $8,%xmm32463pxor %xmm4,%xmm02464pxor %xmm3,%xmm12465pshufd $78,%xmm7,%xmm32466movdqa %xmm0,%xmm42467psrlq $1,%xmm02468pxor %xmm7,%xmm32469pxor %xmm4,%xmm12470.byte 102,15,58,68,250,172471movups 16(%edx),%xmm22472pxor %xmm0,%xmm42473psrlq $5,%xmm02474pxor %xmm4,%xmm02475psrlq $1,%xmm02476pxor %xmm1,%xmm02477.byte 102,15,58,68,221,02478leal 32(%esi),%esi2479subl $32,%ebx2480ja .L015mod_loop2481.L014even_tail:2482pshufd $78,%xmm0,%xmm42483movdqa %xmm0,%xmm12484pxor %xmm0,%xmm42485.byte 102,15,58,68,194,02486.byte 102,15,58,68,202,172487.byte 102,15,58,68,229,162488movdqa (%ecx),%xmm52489xorps %xmm6,%xmm02490xorps %xmm7,%xmm12491pxor %xmm0,%xmm32492pxor %xmm1,%xmm32493pxor %xmm3,%xmm42494movdqa %xmm4,%xmm32495psrldq $8,%xmm42496pslldq $8,%xmm32497pxor %xmm4,%xmm12498pxor %xmm3,%xmm02499movdqa %xmm0,%xmm42500movdqa %xmm0,%xmm32501psllq $5,%xmm02502pxor %xmm0,%xmm32503psllq $1,%xmm02504pxor %xmm3,%xmm02505psllq $57,%xmm02506movdqa %xmm0,%xmm32507pslldq $8,%xmm02508psrldq $8,%xmm32509pxor %xmm4,%xmm02510pxor %xmm3,%xmm12511movdqa %xmm0,%xmm42512psrlq $1,%xmm02513pxor %xmm4,%xmm12514pxor %xmm0,%xmm42515psrlq $5,%xmm02516pxor %xmm4,%xmm02517psrlq $1,%xmm02518pxor %xmm1,%xmm02519testl %ebx,%ebx2520jnz .L016done2521movups (%edx),%xmm22522.L013odd_tail:2523movdqu (%esi),%xmm32524.byte 102,15,56,0,2212525pxor %xmm3,%xmm02526movdqa %xmm0,%xmm12527pshufd $78,%xmm0,%xmm32528pshufd $78,%xmm2,%xmm42529pxor %xmm0,%xmm32530pxor %xmm2,%xmm42531.byte 102,15,58,68,194,02532.byte 102,15,58,68,202,172533.byte 102,15,58,68,220,02534xorps %xmm0,%xmm32535xorps %xmm1,%xmm32536movdqa %xmm3,%xmm42537psrldq $8,%xmm32538pslldq $8,%xmm42539pxor %xmm3,%xmm12540pxor %xmm4,%xmm02541movdqa %xmm0,%xmm42542movdqa %xmm0,%xmm32543psllq $5,%xmm02544pxor %xmm0,%xmm32545psllq $1,%xmm02546pxor %xmm3,%xmm02547psllq $57,%xmm02548movdqa %xmm0,%xmm32549pslldq $8,%xmm02550psrldq $8,%xmm32551pxor %xmm4,%xmm02552pxor %xmm3,%xmm12553movdqa %xmm0,%xmm42554psrlq $1,%xmm02555pxor %xmm4,%xmm12556pxor %xmm0,%xmm42557psrlq $5,%xmm02558pxor %xmm4,%xmm02559psrlq $1,%xmm02560pxor %xmm1,%xmm02561.L016done:2562.byte 102,15,56,0,1972563movdqu %xmm0,(%eax)2564popl %edi2565popl %esi2566popl %ebx2567popl %ebp2568ret2569.size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin2570.align 642571.Lbswap:2572.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,02573.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1942574.align 642575.Lrem_8bit:2576.value 0,450,900,582,1800,1738,1164,13582577.value 3600,4050,3476,3158,2328,2266,2716,29102578.value 7200,7650,8100,7782,6952,6890,6316,65102579.value 4656,5106,4532,4214,5432,5370,5820,60142580.value 14400,14722,15300,14854,16200,16010,15564,156302581.value 13904,14226,13780,13334,12632,12442,13020,130862582.value 9312,9634,10212,9766,9064,8874,8428,84942583.value 10864,11186,10740,10294,11640,11450,12028,120942584.value 28800,28994,29444,29382,30600,30282,29708,301582585.value 32400,32594,32020,31958,31128,30810,31260,317102586.value 27808,28002,28452,28390,27560,27242,26668,271182587.value 25264,25458,24884,24822,26040,25722,26172,266222588.value 18624,18690,19268,19078,20424,19978,19532,198542589.value 18128,18194,17748,17558,16856,16410,16988,173102590.value 21728,21794,22372,22182,21480,21034,20588,209102591.value 23280,23346,22900,22710,24056,23610,24188,245102592.value 57600,57538,57988,58182,58888,59338,58764,584462593.value 61200,61138,60564,60758,59416,59866,60316,599982594.value 64800,64738,65188,65382,64040,64490,63916,635982595.value 62256,62194,61620,61814,62520,62970,63420,631022596.value 55616,55426,56004,56070,56904,57226,56780,563342597.value 55120,54930,54484,54550,53336,53658,54236,537902598.value 50528,50338,50916,50982,49768,50090,49644,491982599.value 52080,51890,51444,51510,52344,52666,53244,527982600.value 37248,36930,37380,37830,38536,38730,38156,380942601.value 40848,40530,39956,40406,39064,39258,39708,396462602.value 36256,35938,36388,36838,35496,35690,35116,350542603.value 33712,33394,32820,33270,33976,34170,34620,345582604.value 43456,43010,43588,43910,44744,44810,44364,441742605.value 42960,42514,42068,42390,41176,41242,41820,416302606.value 46560,46114,46692,47014,45800,45866,45420,452302607.value 48112,47666,47220,47542,48376,48442,49020,488302608.align 642609.Lrem_4bit:2610.long 0,0,0,471859200,0,943718400,0,6102712322611.long 0,1887436800,0,1822425088,0,1220542464,0,14239662082612.long 0,3774873600,0,4246732800,0,3644850176,0,33114030082613.long 0,2441084928,0,2376073216,0,2847932416,0,30513561602614.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,672615.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,1122616.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,622617.byte 026182619.section ".note.gnu.property", "a"2620.p2align 22621.long 1f - 0f2622.long 4f - 1f2623.long 526240:2625.asciz "GNU"26261:2627.p2align 22628.long 0xc00000022629.long 3f - 2f26302:2631.long 326323:2633.p2align 226344:2635#endif263626372638