Path: blob/main/sys/crypto/openssl/amd64/rsaz-x86_64.S
39482 views
/* Do not modify. This file is auto-generated from rsaz-x86_64.pl. */1.text2345.globl rsaz_512_sqr6.type rsaz_512_sqr,@function7.align 328rsaz_512_sqr:9.cfi_startproc10pushq %rbx11.cfi_adjust_cfa_offset 812.cfi_offset %rbx,-1613pushq %rbp14.cfi_adjust_cfa_offset 815.cfi_offset %rbp,-2416pushq %r1217.cfi_adjust_cfa_offset 818.cfi_offset %r12,-3219pushq %r1320.cfi_adjust_cfa_offset 821.cfi_offset %r13,-4022pushq %r1423.cfi_adjust_cfa_offset 824.cfi_offset %r14,-4825pushq %r1526.cfi_adjust_cfa_offset 827.cfi_offset %r15,-562829subq $128+24,%rsp30.cfi_adjust_cfa_offset 128+2431.Lsqr_body:32.byte 102,72,15,110,20233movq (%rsi),%rdx34movq 8(%rsi),%rax35movq %rcx,128(%rsp)36movl $0x80100,%r11d37andl OPENSSL_ia32cap_P+8(%rip),%r11d38cmpl $0x80100,%r11d39je .Loop_sqrx40jmp .Loop_sqr4142.align 3243.Loop_sqr:44movl %r8d,128+8(%rsp)4546movq %rdx,%rbx47movq %rax,%rbp48mulq %rdx49movq %rax,%r850movq 16(%rsi),%rax51movq %rdx,%r95253mulq %rbx54addq %rax,%r955movq 24(%rsi),%rax56movq %rdx,%r1057adcq $0,%r105859mulq %rbx60addq %rax,%r1061movq 32(%rsi),%rax62movq %rdx,%r1163adcq $0,%r116465mulq %rbx66addq %rax,%r1167movq 40(%rsi),%rax68movq %rdx,%r1269adcq $0,%r127071mulq %rbx72addq %rax,%r1273movq 48(%rsi),%rax74movq %rdx,%r1375adcq $0,%r137677mulq %rbx78addq %rax,%r1379movq 56(%rsi),%rax80movq %rdx,%r1481adcq $0,%r148283mulq %rbx84addq %rax,%r1485movq %rbx,%rax86adcq $0,%rdx8788xorq %rcx,%rcx89addq %r8,%r890movq %rdx,%r1591adcq $0,%rcx9293mulq %rax94addq %r8,%rdx95adcq $0,%rcx9697movq %rax,(%rsp)98movq %rdx,8(%rsp)99100101movq 16(%rsi),%rax102mulq %rbp103addq %rax,%r10104movq 24(%rsi),%rax105movq %rdx,%rbx106adcq $0,%rbx107108mulq %rbp109addq %rax,%r11110movq 32(%rsi),%rax111adcq $0,%rdx112addq %rbx,%r11113movq %rdx,%rbx114adcq $0,%rbx115116mulq %rbp117addq %rax,%r12118movq 40(%rsi),%rax119adcq $0,%rdx120addq %rbx,%r12121movq %rdx,%rbx122adcq $0,%rbx123124mulq %rbp125addq %rax,%r13126movq 48(%rsi),%rax127adcq $0,%rdx128addq %rbx,%r13129movq %rdx,%rbx130adcq $0,%rbx131132mulq %rbp133addq %rax,%r14134movq 56(%rsi),%rax135adcq $0,%rdx136addq %rbx,%r14137movq %rdx,%rbx138adcq $0,%rbx139140mulq %rbp141addq %rax,%r15142movq %rbp,%rax143adcq $0,%rdx144addq %rbx,%r15145adcq $0,%rdx146147xorq %rbx,%rbx148addq %r9,%r9149movq %rdx,%r8150adcq %r10,%r10151adcq $0,%rbx152153mulq %rax154155addq %rcx,%rax156movq 16(%rsi),%rbp157addq %rax,%r9158movq 24(%rsi),%rax159adcq %rdx,%r10160adcq $0,%rbx161162movq %r9,16(%rsp)163movq %r10,24(%rsp)164165166mulq %rbp167addq %rax,%r12168movq 32(%rsi),%rax169movq %rdx,%rcx170adcq $0,%rcx171172mulq %rbp173addq %rax,%r13174movq 40(%rsi),%rax175adcq $0,%rdx176addq %rcx,%r13177movq %rdx,%rcx178adcq $0,%rcx179180mulq %rbp181addq %rax,%r14182movq 48(%rsi),%rax183adcq $0,%rdx184addq %rcx,%r14185movq %rdx,%rcx186adcq $0,%rcx187188mulq %rbp189addq %rax,%r15190movq 56(%rsi),%rax191adcq $0,%rdx192addq %rcx,%r15193movq %rdx,%rcx194adcq $0,%rcx195196mulq %rbp197addq %rax,%r8198movq %rbp,%rax199adcq $0,%rdx200addq %rcx,%r8201adcq $0,%rdx202203xorq %rcx,%rcx204addq %r11,%r11205movq %rdx,%r9206adcq %r12,%r12207adcq $0,%rcx208209mulq %rax210211addq %rbx,%rax212movq 24(%rsi),%r10213addq %rax,%r11214movq 32(%rsi),%rax215adcq %rdx,%r12216adcq $0,%rcx217218movq %r11,32(%rsp)219movq %r12,40(%rsp)220221222movq %rax,%r11223mulq %r10224addq %rax,%r14225movq 40(%rsi),%rax226movq %rdx,%rbx227adcq $0,%rbx228229movq %rax,%r12230mulq %r10231addq %rax,%r15232movq 48(%rsi),%rax233adcq $0,%rdx234addq %rbx,%r15235movq %rdx,%rbx236adcq $0,%rbx237238movq %rax,%rbp239mulq %r10240addq %rax,%r8241movq 56(%rsi),%rax242adcq $0,%rdx243addq %rbx,%r8244movq %rdx,%rbx245adcq $0,%rbx246247mulq %r10248addq %rax,%r9249movq %r10,%rax250adcq $0,%rdx251addq %rbx,%r9252adcq $0,%rdx253254xorq %rbx,%rbx255addq %r13,%r13256movq %rdx,%r10257adcq %r14,%r14258adcq $0,%rbx259260mulq %rax261262addq %rcx,%rax263addq %rax,%r13264movq %r12,%rax265adcq %rdx,%r14266adcq $0,%rbx267268movq %r13,48(%rsp)269movq %r14,56(%rsp)270271272mulq %r11273addq %rax,%r8274movq %rbp,%rax275movq %rdx,%rcx276adcq $0,%rcx277278mulq %r11279addq %rax,%r9280movq 56(%rsi),%rax281adcq $0,%rdx282addq %rcx,%r9283movq %rdx,%rcx284adcq $0,%rcx285286movq %rax,%r14287mulq %r11288addq %rax,%r10289movq %r11,%rax290adcq $0,%rdx291addq %rcx,%r10292adcq $0,%rdx293294xorq %rcx,%rcx295addq %r15,%r15296movq %rdx,%r11297adcq %r8,%r8298adcq $0,%rcx299300mulq %rax301302addq %rbx,%rax303addq %rax,%r15304movq %rbp,%rax305adcq %rdx,%r8306adcq $0,%rcx307308movq %r15,64(%rsp)309movq %r8,72(%rsp)310311312mulq %r12313addq %rax,%r10314movq %r14,%rax315movq %rdx,%rbx316adcq $0,%rbx317318mulq %r12319addq %rax,%r11320movq %r12,%rax321adcq $0,%rdx322addq %rbx,%r11323adcq $0,%rdx324325xorq %rbx,%rbx326addq %r9,%r9327movq %rdx,%r12328adcq %r10,%r10329adcq $0,%rbx330331mulq %rax332333addq %rcx,%rax334addq %rax,%r9335movq %r14,%rax336adcq %rdx,%r10337adcq $0,%rbx338339movq %r9,80(%rsp)340movq %r10,88(%rsp)341342343mulq %rbp344addq %rax,%r12345movq %rbp,%rax346adcq $0,%rdx347348xorq %rcx,%rcx349addq %r11,%r11350movq %rdx,%r13351adcq %r12,%r12352adcq $0,%rcx353354mulq %rax355356addq %rbx,%rax357addq %rax,%r11358movq %r14,%rax359adcq %rdx,%r12360adcq $0,%rcx361362movq %r11,96(%rsp)363movq %r12,104(%rsp)364365366xorq %rbx,%rbx367addq %r13,%r13368adcq $0,%rbx369370mulq %rax371372addq %rcx,%rax373addq %r13,%rax374adcq %rbx,%rdx375376movq (%rsp),%r8377movq 8(%rsp),%r9378movq 16(%rsp),%r10379movq 24(%rsp),%r11380movq 32(%rsp),%r12381movq 40(%rsp),%r13382movq 48(%rsp),%r14383movq 56(%rsp),%r15384.byte 102,72,15,126,205385386movq %rax,112(%rsp)387movq %rdx,120(%rsp)388389call __rsaz_512_reduce390391addq 64(%rsp),%r8392adcq 72(%rsp),%r9393adcq 80(%rsp),%r10394adcq 88(%rsp),%r11395adcq 96(%rsp),%r12396adcq 104(%rsp),%r13397adcq 112(%rsp),%r14398adcq 120(%rsp),%r15399sbbq %rcx,%rcx400401call __rsaz_512_subtract402403movq %r8,%rdx404movq %r9,%rax405movl 128+8(%rsp),%r8d406movq %rdi,%rsi407408decl %r8d409jnz .Loop_sqr410jmp .Lsqr_tail411412.align 32413.Loop_sqrx:414movl %r8d,128+8(%rsp)415.byte 102,72,15,110,199416417mulxq %rax,%r8,%r9418movq %rax,%rbx419420mulxq 16(%rsi),%rcx,%r10421xorq %rbp,%rbp422423mulxq 24(%rsi),%rax,%r11424adcxq %rcx,%r9425426.byte 0xc4,0x62,0xf3,0xf6,0xa6,0x20,0x00,0x00,0x00427adcxq %rax,%r10428429.byte 0xc4,0x62,0xfb,0xf6,0xae,0x28,0x00,0x00,0x00430adcxq %rcx,%r11431432mulxq 48(%rsi),%rcx,%r14433adcxq %rax,%r12434adcxq %rcx,%r13435436mulxq 56(%rsi),%rax,%r15437adcxq %rax,%r14438adcxq %rbp,%r15439440mulxq %rdx,%rax,%rdi441movq %rbx,%rdx442xorq %rcx,%rcx443adoxq %r8,%r8444adcxq %rdi,%r8445adoxq %rbp,%rcx446adcxq %rbp,%rcx447448movq %rax,(%rsp)449movq %r8,8(%rsp)450451452.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x10,0x00,0x00,0x00453adoxq %rax,%r10454adcxq %rbx,%r11455456mulxq 24(%rsi),%rdi,%r8457adoxq %rdi,%r11458.byte 0x66459adcxq %r8,%r12460461mulxq 32(%rsi),%rax,%rbx462adoxq %rax,%r12463adcxq %rbx,%r13464465mulxq 40(%rsi),%rdi,%r8466adoxq %rdi,%r13467adcxq %r8,%r14468469.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00470adoxq %rax,%r14471adcxq %rbx,%r15472473.byte 0xc4,0x62,0xc3,0xf6,0x86,0x38,0x00,0x00,0x00474adoxq %rdi,%r15475adcxq %rbp,%r8476mulxq %rdx,%rax,%rdi477adoxq %rbp,%r8478.byte 0x48,0x8b,0x96,0x10,0x00,0x00,0x00479480xorq %rbx,%rbx481adoxq %r9,%r9482483adcxq %rcx,%rax484adoxq %r10,%r10485adcxq %rax,%r9486adoxq %rbp,%rbx487adcxq %rdi,%r10488adcxq %rbp,%rbx489490movq %r9,16(%rsp)491.byte 0x4c,0x89,0x94,0x24,0x18,0x00,0x00,0x00492493494mulxq 24(%rsi),%rdi,%r9495adoxq %rdi,%r12496adcxq %r9,%r13497498mulxq 32(%rsi),%rax,%rcx499adoxq %rax,%r13500adcxq %rcx,%r14501502.byte 0xc4,0x62,0xc3,0xf6,0x8e,0x28,0x00,0x00,0x00503adoxq %rdi,%r14504adcxq %r9,%r15505506.byte 0xc4,0xe2,0xfb,0xf6,0x8e,0x30,0x00,0x00,0x00507adoxq %rax,%r15508adcxq %rcx,%r8509510mulxq 56(%rsi),%rdi,%r9511adoxq %rdi,%r8512adcxq %rbp,%r9513mulxq %rdx,%rax,%rdi514adoxq %rbp,%r9515movq 24(%rsi),%rdx516517xorq %rcx,%rcx518adoxq %r11,%r11519520adcxq %rbx,%rax521adoxq %r12,%r12522adcxq %rax,%r11523adoxq %rbp,%rcx524adcxq %rdi,%r12525adcxq %rbp,%rcx526527movq %r11,32(%rsp)528movq %r12,40(%rsp)529530531mulxq 32(%rsi),%rax,%rbx532adoxq %rax,%r14533adcxq %rbx,%r15534535mulxq 40(%rsi),%rdi,%r10536adoxq %rdi,%r15537adcxq %r10,%r8538539mulxq 48(%rsi),%rax,%rbx540adoxq %rax,%r8541adcxq %rbx,%r9542543mulxq 56(%rsi),%rdi,%r10544adoxq %rdi,%r9545adcxq %rbp,%r10546mulxq %rdx,%rax,%rdi547adoxq %rbp,%r10548movq 32(%rsi),%rdx549550xorq %rbx,%rbx551adoxq %r13,%r13552553adcxq %rcx,%rax554adoxq %r14,%r14555adcxq %rax,%r13556adoxq %rbp,%rbx557adcxq %rdi,%r14558adcxq %rbp,%rbx559560movq %r13,48(%rsp)561movq %r14,56(%rsp)562563564mulxq 40(%rsi),%rdi,%r11565adoxq %rdi,%r8566adcxq %r11,%r9567568mulxq 48(%rsi),%rax,%rcx569adoxq %rax,%r9570adcxq %rcx,%r10571572mulxq 56(%rsi),%rdi,%r11573adoxq %rdi,%r10574adcxq %rbp,%r11575mulxq %rdx,%rax,%rdi576movq 40(%rsi),%rdx577adoxq %rbp,%r11578579xorq %rcx,%rcx580adoxq %r15,%r15581582adcxq %rbx,%rax583adoxq %r8,%r8584adcxq %rax,%r15585adoxq %rbp,%rcx586adcxq %rdi,%r8587adcxq %rbp,%rcx588589movq %r15,64(%rsp)590movq %r8,72(%rsp)591592593.byte 0xc4,0xe2,0xfb,0xf6,0x9e,0x30,0x00,0x00,0x00594adoxq %rax,%r10595adcxq %rbx,%r11596597.byte 0xc4,0x62,0xc3,0xf6,0xa6,0x38,0x00,0x00,0x00598adoxq %rdi,%r11599adcxq %rbp,%r12600mulxq %rdx,%rax,%rdi601adoxq %rbp,%r12602movq 48(%rsi),%rdx603604xorq %rbx,%rbx605adoxq %r9,%r9606607adcxq %rcx,%rax608adoxq %r10,%r10609adcxq %rax,%r9610adcxq %rdi,%r10611adoxq %rbp,%rbx612adcxq %rbp,%rbx613614movq %r9,80(%rsp)615movq %r10,88(%rsp)616617618.byte 0xc4,0x62,0xfb,0xf6,0xae,0x38,0x00,0x00,0x00619adoxq %rax,%r12620adoxq %rbp,%r13621622mulxq %rdx,%rax,%rdi623xorq %rcx,%rcx624movq 56(%rsi),%rdx625adoxq %r11,%r11626627adcxq %rbx,%rax628adoxq %r12,%r12629adcxq %rax,%r11630adoxq %rbp,%rcx631adcxq %rdi,%r12632adcxq %rbp,%rcx633634.byte 0x4c,0x89,0x9c,0x24,0x60,0x00,0x00,0x00635.byte 0x4c,0x89,0xa4,0x24,0x68,0x00,0x00,0x00636637638mulxq %rdx,%rax,%rdx639xorq %rbx,%rbx640adoxq %r13,%r13641642adcxq %rcx,%rax643adoxq %rbp,%rbx644adcxq %r13,%rax645adcxq %rdx,%rbx646647.byte 102,72,15,126,199648.byte 102,72,15,126,205649650movq 128(%rsp),%rdx651movq (%rsp),%r8652movq 8(%rsp),%r9653movq 16(%rsp),%r10654movq 24(%rsp),%r11655movq 32(%rsp),%r12656movq 40(%rsp),%r13657movq 48(%rsp),%r14658movq 56(%rsp),%r15659660movq %rax,112(%rsp)661movq %rbx,120(%rsp)662663call __rsaz_512_reducex664665addq 64(%rsp),%r8666adcq 72(%rsp),%r9667adcq 80(%rsp),%r10668adcq 88(%rsp),%r11669adcq 96(%rsp),%r12670adcq 104(%rsp),%r13671adcq 112(%rsp),%r14672adcq 120(%rsp),%r15673sbbq %rcx,%rcx674675call __rsaz_512_subtract676677movq %r8,%rdx678movq %r9,%rax679movl 128+8(%rsp),%r8d680movq %rdi,%rsi681682decl %r8d683jnz .Loop_sqrx684685.Lsqr_tail:686687leaq 128+24+48(%rsp),%rax688.cfi_def_cfa %rax,8689movq -48(%rax),%r15690.cfi_restore %r15691movq -40(%rax),%r14692.cfi_restore %r14693movq -32(%rax),%r13694.cfi_restore %r13695movq -24(%rax),%r12696.cfi_restore %r12697movq -16(%rax),%rbp698.cfi_restore %rbp699movq -8(%rax),%rbx700.cfi_restore %rbx701leaq (%rax),%rsp702.cfi_def_cfa_register %rsp703.Lsqr_epilogue:704.byte 0xf3,0xc3705.cfi_endproc706.size rsaz_512_sqr,.-rsaz_512_sqr707.globl rsaz_512_mul708.type rsaz_512_mul,@function709.align 32710rsaz_512_mul:711.cfi_startproc712pushq %rbx713.cfi_adjust_cfa_offset 8714.cfi_offset %rbx,-16715pushq %rbp716.cfi_adjust_cfa_offset 8717.cfi_offset %rbp,-24718pushq %r12719.cfi_adjust_cfa_offset 8720.cfi_offset %r12,-32721pushq %r13722.cfi_adjust_cfa_offset 8723.cfi_offset %r13,-40724pushq %r14725.cfi_adjust_cfa_offset 8726.cfi_offset %r14,-48727pushq %r15728.cfi_adjust_cfa_offset 8729.cfi_offset %r15,-56730731subq $128+24,%rsp732.cfi_adjust_cfa_offset 128+24733.Lmul_body:734.byte 102,72,15,110,199735.byte 102,72,15,110,201736movq %r8,128(%rsp)737movl $0x80100,%r11d738andl OPENSSL_ia32cap_P+8(%rip),%r11d739cmpl $0x80100,%r11d740je .Lmulx741movq (%rdx),%rbx742movq %rdx,%rbp743call __rsaz_512_mul744745.byte 102,72,15,126,199746.byte 102,72,15,126,205747748movq (%rsp),%r8749movq 8(%rsp),%r9750movq 16(%rsp),%r10751movq 24(%rsp),%r11752movq 32(%rsp),%r12753movq 40(%rsp),%r13754movq 48(%rsp),%r14755movq 56(%rsp),%r15756757call __rsaz_512_reduce758jmp .Lmul_tail759760.align 32761.Lmulx:762movq %rdx,%rbp763movq (%rdx),%rdx764call __rsaz_512_mulx765766.byte 102,72,15,126,199767.byte 102,72,15,126,205768769movq 128(%rsp),%rdx770movq (%rsp),%r8771movq 8(%rsp),%r9772movq 16(%rsp),%r10773movq 24(%rsp),%r11774movq 32(%rsp),%r12775movq 40(%rsp),%r13776movq 48(%rsp),%r14777movq 56(%rsp),%r15778779call __rsaz_512_reducex780.Lmul_tail:781addq 64(%rsp),%r8782adcq 72(%rsp),%r9783adcq 80(%rsp),%r10784adcq 88(%rsp),%r11785adcq 96(%rsp),%r12786adcq 104(%rsp),%r13787adcq 112(%rsp),%r14788adcq 120(%rsp),%r15789sbbq %rcx,%rcx790791call __rsaz_512_subtract792793leaq 128+24+48(%rsp),%rax794.cfi_def_cfa %rax,8795movq -48(%rax),%r15796.cfi_restore %r15797movq -40(%rax),%r14798.cfi_restore %r14799movq -32(%rax),%r13800.cfi_restore %r13801movq -24(%rax),%r12802.cfi_restore %r12803movq -16(%rax),%rbp804.cfi_restore %rbp805movq -8(%rax),%rbx806.cfi_restore %rbx807leaq (%rax),%rsp808.cfi_def_cfa_register %rsp809.Lmul_epilogue:810.byte 0xf3,0xc3811.cfi_endproc812.size rsaz_512_mul,.-rsaz_512_mul813.globl rsaz_512_mul_gather4814.type rsaz_512_mul_gather4,@function815.align 32816rsaz_512_mul_gather4:817.cfi_startproc818pushq %rbx819.cfi_adjust_cfa_offset 8820.cfi_offset %rbx,-16821pushq %rbp822.cfi_adjust_cfa_offset 8823.cfi_offset %rbp,-24824pushq %r12825.cfi_adjust_cfa_offset 8826.cfi_offset %r12,-32827pushq %r13828.cfi_adjust_cfa_offset 8829.cfi_offset %r13,-40830pushq %r14831.cfi_adjust_cfa_offset 8832.cfi_offset %r14,-48833pushq %r15834.cfi_adjust_cfa_offset 8835.cfi_offset %r15,-56836837subq $152,%rsp838.cfi_adjust_cfa_offset 152839.Lmul_gather4_body:840movd %r9d,%xmm8841movdqa .Linc+16(%rip),%xmm1842movdqa .Linc(%rip),%xmm0843844pshufd $0,%xmm8,%xmm8845movdqa %xmm1,%xmm7846movdqa %xmm1,%xmm2847paddd %xmm0,%xmm1848pcmpeqd %xmm8,%xmm0849movdqa %xmm7,%xmm3850paddd %xmm1,%xmm2851pcmpeqd %xmm8,%xmm1852movdqa %xmm7,%xmm4853paddd %xmm2,%xmm3854pcmpeqd %xmm8,%xmm2855movdqa %xmm7,%xmm5856paddd %xmm3,%xmm4857pcmpeqd %xmm8,%xmm3858movdqa %xmm7,%xmm6859paddd %xmm4,%xmm5860pcmpeqd %xmm8,%xmm4861paddd %xmm5,%xmm6862pcmpeqd %xmm8,%xmm5863paddd %xmm6,%xmm7864pcmpeqd %xmm8,%xmm6865pcmpeqd %xmm8,%xmm7866867movdqa 0(%rdx),%xmm8868movdqa 16(%rdx),%xmm9869movdqa 32(%rdx),%xmm10870movdqa 48(%rdx),%xmm11871pand %xmm0,%xmm8872movdqa 64(%rdx),%xmm12873pand %xmm1,%xmm9874movdqa 80(%rdx),%xmm13875pand %xmm2,%xmm10876movdqa 96(%rdx),%xmm14877pand %xmm3,%xmm11878movdqa 112(%rdx),%xmm15879leaq 128(%rdx),%rbp880pand %xmm4,%xmm12881pand %xmm5,%xmm13882pand %xmm6,%xmm14883pand %xmm7,%xmm15884por %xmm10,%xmm8885por %xmm11,%xmm9886por %xmm12,%xmm8887por %xmm13,%xmm9888por %xmm14,%xmm8889por %xmm15,%xmm9890891por %xmm9,%xmm8892pshufd $0x4e,%xmm8,%xmm9893por %xmm9,%xmm8894movl $0x80100,%r11d895andl OPENSSL_ia32cap_P+8(%rip),%r11d896cmpl $0x80100,%r11d897je .Lmulx_gather898.byte 102,76,15,126,195899900movq %r8,128(%rsp)901movq %rdi,128+8(%rsp)902movq %rcx,128+16(%rsp)903904movq (%rsi),%rax905movq 8(%rsi),%rcx906mulq %rbx907movq %rax,(%rsp)908movq %rcx,%rax909movq %rdx,%r8910911mulq %rbx912addq %rax,%r8913movq 16(%rsi),%rax914movq %rdx,%r9915adcq $0,%r9916917mulq %rbx918addq %rax,%r9919movq 24(%rsi),%rax920movq %rdx,%r10921adcq $0,%r10922923mulq %rbx924addq %rax,%r10925movq 32(%rsi),%rax926movq %rdx,%r11927adcq $0,%r11928929mulq %rbx930addq %rax,%r11931movq 40(%rsi),%rax932movq %rdx,%r12933adcq $0,%r12934935mulq %rbx936addq %rax,%r12937movq 48(%rsi),%rax938movq %rdx,%r13939adcq $0,%r13940941mulq %rbx942addq %rax,%r13943movq 56(%rsi),%rax944movq %rdx,%r14945adcq $0,%r14946947mulq %rbx948addq %rax,%r14949movq (%rsi),%rax950movq %rdx,%r15951adcq $0,%r15952953leaq 8(%rsp),%rdi954movl $7,%ecx955jmp .Loop_mul_gather956957.align 32958.Loop_mul_gather:959movdqa 0(%rbp),%xmm8960movdqa 16(%rbp),%xmm9961movdqa 32(%rbp),%xmm10962movdqa 48(%rbp),%xmm11963pand %xmm0,%xmm8964movdqa 64(%rbp),%xmm12965pand %xmm1,%xmm9966movdqa 80(%rbp),%xmm13967pand %xmm2,%xmm10968movdqa 96(%rbp),%xmm14969pand %xmm3,%xmm11970movdqa 112(%rbp),%xmm15971leaq 128(%rbp),%rbp972pand %xmm4,%xmm12973pand %xmm5,%xmm13974pand %xmm6,%xmm14975pand %xmm7,%xmm15976por %xmm10,%xmm8977por %xmm11,%xmm9978por %xmm12,%xmm8979por %xmm13,%xmm9980por %xmm14,%xmm8981por %xmm15,%xmm9982983por %xmm9,%xmm8984pshufd $0x4e,%xmm8,%xmm9985por %xmm9,%xmm8986.byte 102,76,15,126,195987988mulq %rbx989addq %rax,%r8990movq 8(%rsi),%rax991movq %r8,(%rdi)992movq %rdx,%r8993adcq $0,%r8994995mulq %rbx996addq %rax,%r9997movq 16(%rsi),%rax998adcq $0,%rdx999addq %r9,%r81000movq %rdx,%r91001adcq $0,%r910021003mulq %rbx1004addq %rax,%r101005movq 24(%rsi),%rax1006adcq $0,%rdx1007addq %r10,%r91008movq %rdx,%r101009adcq $0,%r1010101011mulq %rbx1012addq %rax,%r111013movq 32(%rsi),%rax1014adcq $0,%rdx1015addq %r11,%r101016movq %rdx,%r111017adcq $0,%r1110181019mulq %rbx1020addq %rax,%r121021movq 40(%rsi),%rax1022adcq $0,%rdx1023addq %r12,%r111024movq %rdx,%r121025adcq $0,%r1210261027mulq %rbx1028addq %rax,%r131029movq 48(%rsi),%rax1030adcq $0,%rdx1031addq %r13,%r121032movq %rdx,%r131033adcq $0,%r1310341035mulq %rbx1036addq %rax,%r141037movq 56(%rsi),%rax1038adcq $0,%rdx1039addq %r14,%r131040movq %rdx,%r141041adcq $0,%r1410421043mulq %rbx1044addq %rax,%r151045movq (%rsi),%rax1046adcq $0,%rdx1047addq %r15,%r141048movq %rdx,%r151049adcq $0,%r1510501051leaq 8(%rdi),%rdi10521053decl %ecx1054jnz .Loop_mul_gather10551056movq %r8,(%rdi)1057movq %r9,8(%rdi)1058movq %r10,16(%rdi)1059movq %r11,24(%rdi)1060movq %r12,32(%rdi)1061movq %r13,40(%rdi)1062movq %r14,48(%rdi)1063movq %r15,56(%rdi)10641065movq 128+8(%rsp),%rdi1066movq 128+16(%rsp),%rbp10671068movq (%rsp),%r81069movq 8(%rsp),%r91070movq 16(%rsp),%r101071movq 24(%rsp),%r111072movq 32(%rsp),%r121073movq 40(%rsp),%r131074movq 48(%rsp),%r141075movq 56(%rsp),%r1510761077call __rsaz_512_reduce1078jmp .Lmul_gather_tail10791080.align 321081.Lmulx_gather:1082.byte 102,76,15,126,19410831084movq %r8,128(%rsp)1085movq %rdi,128+8(%rsp)1086movq %rcx,128+16(%rsp)10871088mulxq (%rsi),%rbx,%r81089movq %rbx,(%rsp)1090xorl %edi,%edi10911092mulxq 8(%rsi),%rax,%r910931094mulxq 16(%rsi),%rbx,%r101095adcxq %rax,%r810961097mulxq 24(%rsi),%rax,%r111098adcxq %rbx,%r910991100mulxq 32(%rsi),%rbx,%r121101adcxq %rax,%r1011021103mulxq 40(%rsi),%rax,%r131104adcxq %rbx,%r1111051106mulxq 48(%rsi),%rbx,%r141107adcxq %rax,%r1211081109mulxq 56(%rsi),%rax,%r151110adcxq %rbx,%r131111adcxq %rax,%r141112.byte 0x671113movq %r8,%rbx1114adcxq %rdi,%r1511151116movq $-7,%rcx1117jmp .Loop_mulx_gather11181119.align 321120.Loop_mulx_gather:1121movdqa 0(%rbp),%xmm81122movdqa 16(%rbp),%xmm91123movdqa 32(%rbp),%xmm101124movdqa 48(%rbp),%xmm111125pand %xmm0,%xmm81126movdqa 64(%rbp),%xmm121127pand %xmm1,%xmm91128movdqa 80(%rbp),%xmm131129pand %xmm2,%xmm101130movdqa 96(%rbp),%xmm141131pand %xmm3,%xmm111132movdqa 112(%rbp),%xmm151133leaq 128(%rbp),%rbp1134pand %xmm4,%xmm121135pand %xmm5,%xmm131136pand %xmm6,%xmm141137pand %xmm7,%xmm151138por %xmm10,%xmm81139por %xmm11,%xmm91140por %xmm12,%xmm81141por %xmm13,%xmm91142por %xmm14,%xmm81143por %xmm15,%xmm911441145por %xmm9,%xmm81146pshufd $0x4e,%xmm8,%xmm91147por %xmm9,%xmm81148.byte 102,76,15,126,19411491150.byte 0xc4,0x62,0xfb,0xf6,0x86,0x00,0x00,0x00,0x001151adcxq %rax,%rbx1152adoxq %r9,%r811531154mulxq 8(%rsi),%rax,%r91155adcxq %rax,%r81156adoxq %r10,%r911571158mulxq 16(%rsi),%rax,%r101159adcxq %rax,%r91160adoxq %r11,%r1011611162.byte 0xc4,0x62,0xfb,0xf6,0x9e,0x18,0x00,0x00,0x001163adcxq %rax,%r101164adoxq %r12,%r1111651166mulxq 32(%rsi),%rax,%r121167adcxq %rax,%r111168adoxq %r13,%r1211691170mulxq 40(%rsi),%rax,%r131171adcxq %rax,%r121172adoxq %r14,%r1311731174.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x001175adcxq %rax,%r131176.byte 0x671177adoxq %r15,%r1411781179mulxq 56(%rsi),%rax,%r151180movq %rbx,64(%rsp,%rcx,8)1181adcxq %rax,%r141182adoxq %rdi,%r151183movq %r8,%rbx1184adcxq %rdi,%r1511851186incq %rcx1187jnz .Loop_mulx_gather11881189movq %r8,64(%rsp)1190movq %r9,64+8(%rsp)1191movq %r10,64+16(%rsp)1192movq %r11,64+24(%rsp)1193movq %r12,64+32(%rsp)1194movq %r13,64+40(%rsp)1195movq %r14,64+48(%rsp)1196movq %r15,64+56(%rsp)11971198movq 128(%rsp),%rdx1199movq 128+8(%rsp),%rdi1200movq 128+16(%rsp),%rbp12011202movq (%rsp),%r81203movq 8(%rsp),%r91204movq 16(%rsp),%r101205movq 24(%rsp),%r111206movq 32(%rsp),%r121207movq 40(%rsp),%r131208movq 48(%rsp),%r141209movq 56(%rsp),%r1512101211call __rsaz_512_reducex12121213.Lmul_gather_tail:1214addq 64(%rsp),%r81215adcq 72(%rsp),%r91216adcq 80(%rsp),%r101217adcq 88(%rsp),%r111218adcq 96(%rsp),%r121219adcq 104(%rsp),%r131220adcq 112(%rsp),%r141221adcq 120(%rsp),%r151222sbbq %rcx,%rcx12231224call __rsaz_512_subtract12251226leaq 128+24+48(%rsp),%rax1227.cfi_def_cfa %rax,81228movq -48(%rax),%r151229.cfi_restore %r151230movq -40(%rax),%r141231.cfi_restore %r141232movq -32(%rax),%r131233.cfi_restore %r131234movq -24(%rax),%r121235.cfi_restore %r121236movq -16(%rax),%rbp1237.cfi_restore %rbp1238movq -8(%rax),%rbx1239.cfi_restore %rbx1240leaq (%rax),%rsp1241.cfi_def_cfa_register %rsp1242.Lmul_gather4_epilogue:1243.byte 0xf3,0xc31244.cfi_endproc1245.size rsaz_512_mul_gather4,.-rsaz_512_mul_gather41246.globl rsaz_512_mul_scatter41247.type rsaz_512_mul_scatter4,@function1248.align 321249rsaz_512_mul_scatter4:1250.cfi_startproc1251pushq %rbx1252.cfi_adjust_cfa_offset 81253.cfi_offset %rbx,-161254pushq %rbp1255.cfi_adjust_cfa_offset 81256.cfi_offset %rbp,-241257pushq %r121258.cfi_adjust_cfa_offset 81259.cfi_offset %r12,-321260pushq %r131261.cfi_adjust_cfa_offset 81262.cfi_offset %r13,-401263pushq %r141264.cfi_adjust_cfa_offset 81265.cfi_offset %r14,-481266pushq %r151267.cfi_adjust_cfa_offset 81268.cfi_offset %r15,-5612691270movl %r9d,%r9d1271subq $128+24,%rsp1272.cfi_adjust_cfa_offset 128+241273.Lmul_scatter4_body:1274leaq (%r8,%r9,8),%r81275.byte 102,72,15,110,1991276.byte 102,72,15,110,2021277.byte 102,73,15,110,2081278movq %rcx,128(%rsp)12791280movq %rdi,%rbp1281movl $0x80100,%r11d1282andl OPENSSL_ia32cap_P+8(%rip),%r11d1283cmpl $0x80100,%r11d1284je .Lmulx_scatter1285movq (%rdi),%rbx1286call __rsaz_512_mul12871288.byte 102,72,15,126,1991289.byte 102,72,15,126,20512901291movq (%rsp),%r81292movq 8(%rsp),%r91293movq 16(%rsp),%r101294movq 24(%rsp),%r111295movq 32(%rsp),%r121296movq 40(%rsp),%r131297movq 48(%rsp),%r141298movq 56(%rsp),%r1512991300call __rsaz_512_reduce1301jmp .Lmul_scatter_tail13021303.align 321304.Lmulx_scatter:1305movq (%rdi),%rdx1306call __rsaz_512_mulx13071308.byte 102,72,15,126,1991309.byte 102,72,15,126,20513101311movq 128(%rsp),%rdx1312movq (%rsp),%r81313movq 8(%rsp),%r91314movq 16(%rsp),%r101315movq 24(%rsp),%r111316movq 32(%rsp),%r121317movq 40(%rsp),%r131318movq 48(%rsp),%r141319movq 56(%rsp),%r1513201321call __rsaz_512_reducex13221323.Lmul_scatter_tail:1324addq 64(%rsp),%r81325adcq 72(%rsp),%r91326adcq 80(%rsp),%r101327adcq 88(%rsp),%r111328adcq 96(%rsp),%r121329adcq 104(%rsp),%r131330adcq 112(%rsp),%r141331adcq 120(%rsp),%r151332.byte 102,72,15,126,2141333sbbq %rcx,%rcx13341335call __rsaz_512_subtract13361337movq %r8,0(%rsi)1338movq %r9,128(%rsi)1339movq %r10,256(%rsi)1340movq %r11,384(%rsi)1341movq %r12,512(%rsi)1342movq %r13,640(%rsi)1343movq %r14,768(%rsi)1344movq %r15,896(%rsi)13451346leaq 128+24+48(%rsp),%rax1347.cfi_def_cfa %rax,81348movq -48(%rax),%r151349.cfi_restore %r151350movq -40(%rax),%r141351.cfi_restore %r141352movq -32(%rax),%r131353.cfi_restore %r131354movq -24(%rax),%r121355.cfi_restore %r121356movq -16(%rax),%rbp1357.cfi_restore %rbp1358movq -8(%rax),%rbx1359.cfi_restore %rbx1360leaq (%rax),%rsp1361.cfi_def_cfa_register %rsp1362.Lmul_scatter4_epilogue:1363.byte 0xf3,0xc31364.cfi_endproc1365.size rsaz_512_mul_scatter4,.-rsaz_512_mul_scatter41366.globl rsaz_512_mul_by_one1367.type rsaz_512_mul_by_one,@function1368.align 321369rsaz_512_mul_by_one:1370.cfi_startproc1371pushq %rbx1372.cfi_adjust_cfa_offset 81373.cfi_offset %rbx,-161374pushq %rbp1375.cfi_adjust_cfa_offset 81376.cfi_offset %rbp,-241377pushq %r121378.cfi_adjust_cfa_offset 81379.cfi_offset %r12,-321380pushq %r131381.cfi_adjust_cfa_offset 81382.cfi_offset %r13,-401383pushq %r141384.cfi_adjust_cfa_offset 81385.cfi_offset %r14,-481386pushq %r151387.cfi_adjust_cfa_offset 81388.cfi_offset %r15,-5613891390subq $128+24,%rsp1391.cfi_adjust_cfa_offset 128+241392.Lmul_by_one_body:1393movl OPENSSL_ia32cap_P+8(%rip),%eax1394movq %rdx,%rbp1395movq %rcx,128(%rsp)13961397movq (%rsi),%r81398pxor %xmm0,%xmm01399movq 8(%rsi),%r91400movq 16(%rsi),%r101401movq 24(%rsi),%r111402movq 32(%rsi),%r121403movq 40(%rsi),%r131404movq 48(%rsi),%r141405movq 56(%rsi),%r1514061407movdqa %xmm0,(%rsp)1408movdqa %xmm0,16(%rsp)1409movdqa %xmm0,32(%rsp)1410movdqa %xmm0,48(%rsp)1411movdqa %xmm0,64(%rsp)1412movdqa %xmm0,80(%rsp)1413movdqa %xmm0,96(%rsp)1414andl $0x80100,%eax1415cmpl $0x80100,%eax1416je .Lby_one_callx1417call __rsaz_512_reduce1418jmp .Lby_one_tail1419.align 321420.Lby_one_callx:1421movq 128(%rsp),%rdx1422call __rsaz_512_reducex1423.Lby_one_tail:1424movq %r8,(%rdi)1425movq %r9,8(%rdi)1426movq %r10,16(%rdi)1427movq %r11,24(%rdi)1428movq %r12,32(%rdi)1429movq %r13,40(%rdi)1430movq %r14,48(%rdi)1431movq %r15,56(%rdi)14321433leaq 128+24+48(%rsp),%rax1434.cfi_def_cfa %rax,81435movq -48(%rax),%r151436.cfi_restore %r151437movq -40(%rax),%r141438.cfi_restore %r141439movq -32(%rax),%r131440.cfi_restore %r131441movq -24(%rax),%r121442.cfi_restore %r121443movq -16(%rax),%rbp1444.cfi_restore %rbp1445movq -8(%rax),%rbx1446.cfi_restore %rbx1447leaq (%rax),%rsp1448.cfi_def_cfa_register %rsp1449.Lmul_by_one_epilogue:1450.byte 0xf3,0xc31451.cfi_endproc1452.size rsaz_512_mul_by_one,.-rsaz_512_mul_by_one1453.type __rsaz_512_reduce,@function1454.align 321455__rsaz_512_reduce:1456.cfi_startproc1457movq %r8,%rbx1458imulq 128+8(%rsp),%rbx1459movq 0(%rbp),%rax1460movl $8,%ecx1461jmp .Lreduction_loop14621463.align 321464.Lreduction_loop:1465mulq %rbx1466movq 8(%rbp),%rax1467negq %r81468movq %rdx,%r81469adcq $0,%r814701471mulq %rbx1472addq %rax,%r91473movq 16(%rbp),%rax1474adcq $0,%rdx1475addq %r9,%r81476movq %rdx,%r91477adcq $0,%r914781479mulq %rbx1480addq %rax,%r101481movq 24(%rbp),%rax1482adcq $0,%rdx1483addq %r10,%r91484movq %rdx,%r101485adcq $0,%r1014861487mulq %rbx1488addq %rax,%r111489movq 32(%rbp),%rax1490adcq $0,%rdx1491addq %r11,%r101492movq 128+8(%rsp),%rsi149314941495adcq $0,%rdx1496movq %rdx,%r1114971498mulq %rbx1499addq %rax,%r121500movq 40(%rbp),%rax1501adcq $0,%rdx1502imulq %r8,%rsi1503addq %r12,%r111504movq %rdx,%r121505adcq $0,%r1215061507mulq %rbx1508addq %rax,%r131509movq 48(%rbp),%rax1510adcq $0,%rdx1511addq %r13,%r121512movq %rdx,%r131513adcq $0,%r1315141515mulq %rbx1516addq %rax,%r141517movq 56(%rbp),%rax1518adcq $0,%rdx1519addq %r14,%r131520movq %rdx,%r141521adcq $0,%r1415221523mulq %rbx1524movq %rsi,%rbx1525addq %rax,%r151526movq 0(%rbp),%rax1527adcq $0,%rdx1528addq %r15,%r141529movq %rdx,%r151530adcq $0,%r1515311532decl %ecx1533jne .Lreduction_loop15341535.byte 0xf3,0xc31536.cfi_endproc1537.size __rsaz_512_reduce,.-__rsaz_512_reduce1538.type __rsaz_512_reducex,@function1539.align 321540__rsaz_512_reducex:1541.cfi_startproc15421543imulq %r8,%rdx1544xorq %rsi,%rsi1545movl $8,%ecx1546jmp .Lreduction_loopx15471548.align 321549.Lreduction_loopx:1550movq %r8,%rbx1551mulxq 0(%rbp),%rax,%r81552adcxq %rbx,%rax1553adoxq %r9,%r815541555mulxq 8(%rbp),%rax,%r91556adcxq %rax,%r81557adoxq %r10,%r915581559mulxq 16(%rbp),%rbx,%r101560adcxq %rbx,%r91561adoxq %r11,%r1015621563mulxq 24(%rbp),%rbx,%r111564adcxq %rbx,%r101565adoxq %r12,%r1115661567.byte 0xc4,0x62,0xe3,0xf6,0xa5,0x20,0x00,0x00,0x001568movq %rdx,%rax1569movq %r8,%rdx1570adcxq %rbx,%r111571adoxq %r13,%r1215721573mulxq 128+8(%rsp),%rbx,%rdx1574movq %rax,%rdx15751576mulxq 40(%rbp),%rax,%r131577adcxq %rax,%r121578adoxq %r14,%r1315791580.byte 0xc4,0x62,0xfb,0xf6,0xb5,0x30,0x00,0x00,0x001581adcxq %rax,%r131582adoxq %r15,%r1415831584mulxq 56(%rbp),%rax,%r151585movq %rbx,%rdx1586adcxq %rax,%r141587adoxq %rsi,%r151588adcxq %rsi,%r1515891590decl %ecx1591jne .Lreduction_loopx15921593.byte 0xf3,0xc31594.cfi_endproc1595.size __rsaz_512_reducex,.-__rsaz_512_reducex1596.type __rsaz_512_subtract,@function1597.align 321598__rsaz_512_subtract:1599.cfi_startproc1600movq %r8,(%rdi)1601movq %r9,8(%rdi)1602movq %r10,16(%rdi)1603movq %r11,24(%rdi)1604movq %r12,32(%rdi)1605movq %r13,40(%rdi)1606movq %r14,48(%rdi)1607movq %r15,56(%rdi)16081609movq 0(%rbp),%r81610movq 8(%rbp),%r91611negq %r81612notq %r91613andq %rcx,%r81614movq 16(%rbp),%r101615andq %rcx,%r91616notq %r101617movq 24(%rbp),%r111618andq %rcx,%r101619notq %r111620movq 32(%rbp),%r121621andq %rcx,%r111622notq %r121623movq 40(%rbp),%r131624andq %rcx,%r121625notq %r131626movq 48(%rbp),%r141627andq %rcx,%r131628notq %r141629movq 56(%rbp),%r151630andq %rcx,%r141631notq %r151632andq %rcx,%r1516331634addq (%rdi),%r81635adcq 8(%rdi),%r91636adcq 16(%rdi),%r101637adcq 24(%rdi),%r111638adcq 32(%rdi),%r121639adcq 40(%rdi),%r131640adcq 48(%rdi),%r141641adcq 56(%rdi),%r1516421643movq %r8,(%rdi)1644movq %r9,8(%rdi)1645movq %r10,16(%rdi)1646movq %r11,24(%rdi)1647movq %r12,32(%rdi)1648movq %r13,40(%rdi)1649movq %r14,48(%rdi)1650movq %r15,56(%rdi)16511652.byte 0xf3,0xc31653.cfi_endproc1654.size __rsaz_512_subtract,.-__rsaz_512_subtract1655.type __rsaz_512_mul,@function1656.align 321657__rsaz_512_mul:1658.cfi_startproc1659leaq 8(%rsp),%rdi16601661movq (%rsi),%rax1662mulq %rbx1663movq %rax,(%rdi)1664movq 8(%rsi),%rax1665movq %rdx,%r816661667mulq %rbx1668addq %rax,%r81669movq 16(%rsi),%rax1670movq %rdx,%r91671adcq $0,%r916721673mulq %rbx1674addq %rax,%r91675movq 24(%rsi),%rax1676movq %rdx,%r101677adcq $0,%r1016781679mulq %rbx1680addq %rax,%r101681movq 32(%rsi),%rax1682movq %rdx,%r111683adcq $0,%r1116841685mulq %rbx1686addq %rax,%r111687movq 40(%rsi),%rax1688movq %rdx,%r121689adcq $0,%r1216901691mulq %rbx1692addq %rax,%r121693movq 48(%rsi),%rax1694movq %rdx,%r131695adcq $0,%r1316961697mulq %rbx1698addq %rax,%r131699movq 56(%rsi),%rax1700movq %rdx,%r141701adcq $0,%r1417021703mulq %rbx1704addq %rax,%r141705movq (%rsi),%rax1706movq %rdx,%r151707adcq $0,%r1517081709leaq 8(%rbp),%rbp1710leaq 8(%rdi),%rdi17111712movl $7,%ecx1713jmp .Loop_mul17141715.align 321716.Loop_mul:1717movq (%rbp),%rbx1718mulq %rbx1719addq %rax,%r81720movq 8(%rsi),%rax1721movq %r8,(%rdi)1722movq %rdx,%r81723adcq $0,%r817241725mulq %rbx1726addq %rax,%r91727movq 16(%rsi),%rax1728adcq $0,%rdx1729addq %r9,%r81730movq %rdx,%r91731adcq $0,%r917321733mulq %rbx1734addq %rax,%r101735movq 24(%rsi),%rax1736adcq $0,%rdx1737addq %r10,%r91738movq %rdx,%r101739adcq $0,%r1017401741mulq %rbx1742addq %rax,%r111743movq 32(%rsi),%rax1744adcq $0,%rdx1745addq %r11,%r101746movq %rdx,%r111747adcq $0,%r1117481749mulq %rbx1750addq %rax,%r121751movq 40(%rsi),%rax1752adcq $0,%rdx1753addq %r12,%r111754movq %rdx,%r121755adcq $0,%r1217561757mulq %rbx1758addq %rax,%r131759movq 48(%rsi),%rax1760adcq $0,%rdx1761addq %r13,%r121762movq %rdx,%r131763adcq $0,%r1317641765mulq %rbx1766addq %rax,%r141767movq 56(%rsi),%rax1768adcq $0,%rdx1769addq %r14,%r131770movq %rdx,%r141771leaq 8(%rbp),%rbp1772adcq $0,%r1417731774mulq %rbx1775addq %rax,%r151776movq (%rsi),%rax1777adcq $0,%rdx1778addq %r15,%r141779movq %rdx,%r151780adcq $0,%r1517811782leaq 8(%rdi),%rdi17831784decl %ecx1785jnz .Loop_mul17861787movq %r8,(%rdi)1788movq %r9,8(%rdi)1789movq %r10,16(%rdi)1790movq %r11,24(%rdi)1791movq %r12,32(%rdi)1792movq %r13,40(%rdi)1793movq %r14,48(%rdi)1794movq %r15,56(%rdi)17951796.byte 0xf3,0xc31797.cfi_endproc1798.size __rsaz_512_mul,.-__rsaz_512_mul1799.type __rsaz_512_mulx,@function1800.align 321801__rsaz_512_mulx:1802.cfi_startproc1803mulxq (%rsi),%rbx,%r81804movq $-6,%rcx18051806mulxq 8(%rsi),%rax,%r91807movq %rbx,8(%rsp)18081809mulxq 16(%rsi),%rbx,%r101810adcq %rax,%r818111812mulxq 24(%rsi),%rax,%r111813adcq %rbx,%r918141815mulxq 32(%rsi),%rbx,%r121816adcq %rax,%r1018171818mulxq 40(%rsi),%rax,%r131819adcq %rbx,%r1118201821mulxq 48(%rsi),%rbx,%r141822adcq %rax,%r1218231824mulxq 56(%rsi),%rax,%r151825movq 8(%rbp),%rdx1826adcq %rbx,%r131827adcq %rax,%r141828adcq $0,%r1518291830xorq %rdi,%rdi1831jmp .Loop_mulx18321833.align 321834.Loop_mulx:1835movq %r8,%rbx1836mulxq (%rsi),%rax,%r81837adcxq %rax,%rbx1838adoxq %r9,%r818391840mulxq 8(%rsi),%rax,%r91841adcxq %rax,%r81842adoxq %r10,%r918431844mulxq 16(%rsi),%rax,%r101845adcxq %rax,%r91846adoxq %r11,%r1018471848mulxq 24(%rsi),%rax,%r111849adcxq %rax,%r101850adoxq %r12,%r1118511852.byte 0x3e,0xc4,0x62,0xfb,0xf6,0xa6,0x20,0x00,0x00,0x001853adcxq %rax,%r111854adoxq %r13,%r1218551856mulxq 40(%rsi),%rax,%r131857adcxq %rax,%r121858adoxq %r14,%r1318591860mulxq 48(%rsi),%rax,%r141861adcxq %rax,%r131862adoxq %r15,%r1418631864mulxq 56(%rsi),%rax,%r151865movq 64(%rbp,%rcx,8),%rdx1866movq %rbx,8+64-8(%rsp,%rcx,8)1867adcxq %rax,%r141868adoxq %rdi,%r151869adcxq %rdi,%r1518701871incq %rcx1872jnz .Loop_mulx18731874movq %r8,%rbx1875mulxq (%rsi),%rax,%r81876adcxq %rax,%rbx1877adoxq %r9,%r818781879.byte 0xc4,0x62,0xfb,0xf6,0x8e,0x08,0x00,0x00,0x001880adcxq %rax,%r81881adoxq %r10,%r918821883.byte 0xc4,0x62,0xfb,0xf6,0x96,0x10,0x00,0x00,0x001884adcxq %rax,%r91885adoxq %r11,%r1018861887mulxq 24(%rsi),%rax,%r111888adcxq %rax,%r101889adoxq %r12,%r1118901891mulxq 32(%rsi),%rax,%r121892adcxq %rax,%r111893adoxq %r13,%r1218941895mulxq 40(%rsi),%rax,%r131896adcxq %rax,%r121897adoxq %r14,%r1318981899.byte 0xc4,0x62,0xfb,0xf6,0xb6,0x30,0x00,0x00,0x001900adcxq %rax,%r131901adoxq %r15,%r1419021903.byte 0xc4,0x62,0xfb,0xf6,0xbe,0x38,0x00,0x00,0x001904adcxq %rax,%r141905adoxq %rdi,%r151906adcxq %rdi,%r1519071908movq %rbx,8+64-8(%rsp)1909movq %r8,8+64(%rsp)1910movq %r9,8+64+8(%rsp)1911movq %r10,8+64+16(%rsp)1912movq %r11,8+64+24(%rsp)1913movq %r12,8+64+32(%rsp)1914movq %r13,8+64+40(%rsp)1915movq %r14,8+64+48(%rsp)1916movq %r15,8+64+56(%rsp)19171918.byte 0xf3,0xc31919.cfi_endproc1920.size __rsaz_512_mulx,.-__rsaz_512_mulx1921.globl rsaz_512_scatter41922.type rsaz_512_scatter4,@function1923.align 161924rsaz_512_scatter4:1925.cfi_startproc1926leaq (%rdi,%rdx,8),%rdi1927movl $8,%r9d1928jmp .Loop_scatter1929.align 161930.Loop_scatter:1931movq (%rsi),%rax1932leaq 8(%rsi),%rsi1933movq %rax,(%rdi)1934leaq 128(%rdi),%rdi1935decl %r9d1936jnz .Loop_scatter1937.byte 0xf3,0xc31938.cfi_endproc1939.size rsaz_512_scatter4,.-rsaz_512_scatter419401941.globl rsaz_512_gather41942.type rsaz_512_gather4,@function1943.align 161944rsaz_512_gather4:1945.cfi_startproc1946movd %edx,%xmm81947movdqa .Linc+16(%rip),%xmm11948movdqa .Linc(%rip),%xmm019491950pshufd $0,%xmm8,%xmm81951movdqa %xmm1,%xmm71952movdqa %xmm1,%xmm21953paddd %xmm0,%xmm11954pcmpeqd %xmm8,%xmm01955movdqa %xmm7,%xmm31956paddd %xmm1,%xmm21957pcmpeqd %xmm8,%xmm11958movdqa %xmm7,%xmm41959paddd %xmm2,%xmm31960pcmpeqd %xmm8,%xmm21961movdqa %xmm7,%xmm51962paddd %xmm3,%xmm41963pcmpeqd %xmm8,%xmm31964movdqa %xmm7,%xmm61965paddd %xmm4,%xmm51966pcmpeqd %xmm8,%xmm41967paddd %xmm5,%xmm61968pcmpeqd %xmm8,%xmm51969paddd %xmm6,%xmm71970pcmpeqd %xmm8,%xmm61971pcmpeqd %xmm8,%xmm71972movl $8,%r9d1973jmp .Loop_gather1974.align 161975.Loop_gather:1976movdqa 0(%rsi),%xmm81977movdqa 16(%rsi),%xmm91978movdqa 32(%rsi),%xmm101979movdqa 48(%rsi),%xmm111980pand %xmm0,%xmm81981movdqa 64(%rsi),%xmm121982pand %xmm1,%xmm91983movdqa 80(%rsi),%xmm131984pand %xmm2,%xmm101985movdqa 96(%rsi),%xmm141986pand %xmm3,%xmm111987movdqa 112(%rsi),%xmm151988leaq 128(%rsi),%rsi1989pand %xmm4,%xmm121990pand %xmm5,%xmm131991pand %xmm6,%xmm141992pand %xmm7,%xmm151993por %xmm10,%xmm81994por %xmm11,%xmm91995por %xmm12,%xmm81996por %xmm13,%xmm91997por %xmm14,%xmm81998por %xmm15,%xmm919992000por %xmm9,%xmm82001pshufd $0x4e,%xmm8,%xmm92002por %xmm9,%xmm82003movq %xmm8,(%rdi)2004leaq 8(%rdi),%rdi2005decl %r9d2006jnz .Loop_gather2007.byte 0xf3,0xc32008.LSEH_end_rsaz_512_gather4:2009.cfi_endproc2010.size rsaz_512_gather4,.-rsaz_512_gather420112012.section .rodata2013.align 642014.Linc:2015.long 0,0, 1,12016.long 2,2, 2,22017.previous2018.section ".note.gnu.property", "a"2019.p2align 32020.long 1f - 0f2021.long 4f - 1f2022.long 520230:2024# "GNU" encoded with .byte, since .asciz isn't supported2025# on Solaris.2026.byte 0x472027.byte 0x4e2028.byte 0x552029.byte 020301:2031.p2align 32032.long 0xc00000022033.long 3f - 2f20342:2035.long 320363:2037.p2align 320384:203920402041