Path: blob/main/sys/crypto/openssl/amd64/rsaz-3k-avx512.S
39482 views
/* Do not modify. This file is auto-generated from rsaz-3k-avx512.pl. */1.text23.globl ossl_rsaz_amm52x30_x1_ifma2564.type ossl_rsaz_amm52x30_x1_ifma256,@function5.align 326ossl_rsaz_amm52x30_x1_ifma256:7.cfi_startproc8.byte 243,15,30,2509pushq %rbx10.cfi_adjust_cfa_offset 811.cfi_offset %rbx,-1612pushq %rbp13.cfi_adjust_cfa_offset 814.cfi_offset %rbp,-2415pushq %r1216.cfi_adjust_cfa_offset 817.cfi_offset %r12,-3218pushq %r1319.cfi_adjust_cfa_offset 820.cfi_offset %r13,-4021pushq %r1422.cfi_adjust_cfa_offset 823.cfi_offset %r14,-4824pushq %r1525.cfi_adjust_cfa_offset 826.cfi_offset %r15,-562728vpxord %ymm0,%ymm0,%ymm029vmovdqa64 %ymm0,%ymm330vmovdqa64 %ymm0,%ymm431vmovdqa64 %ymm0,%ymm532vmovdqa64 %ymm0,%ymm633vmovdqa64 %ymm0,%ymm734vmovdqa64 %ymm0,%ymm835vmovdqa64 %ymm0,%ymm936vmovdqa64 %ymm0,%ymm103738xorl %r9d,%r9d3940movq %rdx,%r1141movq $0xfffffffffffff,%rax424344movl $7,%ebx4546.align 3247.Lloop7:48movq 0(%r11),%r134950vpbroadcastq %r13,%ymm151movq 0(%rsi),%rdx52mulxq %r13,%r13,%r1253addq %r13,%r954movq %r12,%r1055adcq $0,%r105657movq %r8,%r1358imulq %r9,%r1359andq %rax,%r136061vpbroadcastq %r13,%ymm262movq 0(%rcx),%rdx63mulxq %r13,%r13,%r1264addq %r13,%r965adcq %r12,%r106667shrq $52,%r968salq $12,%r1069orq %r10,%r97071vpmadd52luq 0(%rsi),%ymm1,%ymm372vpmadd52luq 32(%rsi),%ymm1,%ymm473vpmadd52luq 64(%rsi),%ymm1,%ymm574vpmadd52luq 96(%rsi),%ymm1,%ymm675vpmadd52luq 128(%rsi),%ymm1,%ymm776vpmadd52luq 160(%rsi),%ymm1,%ymm877vpmadd52luq 192(%rsi),%ymm1,%ymm978vpmadd52luq 224(%rsi),%ymm1,%ymm107980vpmadd52luq 0(%rcx),%ymm2,%ymm381vpmadd52luq 32(%rcx),%ymm2,%ymm482vpmadd52luq 64(%rcx),%ymm2,%ymm583vpmadd52luq 96(%rcx),%ymm2,%ymm684vpmadd52luq 128(%rcx),%ymm2,%ymm785vpmadd52luq 160(%rcx),%ymm2,%ymm886vpmadd52luq 192(%rcx),%ymm2,%ymm987vpmadd52luq 224(%rcx),%ymm2,%ymm10888990valignq $1,%ymm3,%ymm4,%ymm391valignq $1,%ymm4,%ymm5,%ymm492valignq $1,%ymm5,%ymm6,%ymm593valignq $1,%ymm6,%ymm7,%ymm694valignq $1,%ymm7,%ymm8,%ymm795valignq $1,%ymm8,%ymm9,%ymm896valignq $1,%ymm9,%ymm10,%ymm997valignq $1,%ymm10,%ymm0,%ymm109899vmovq %xmm3,%r13100addq %r13,%r9101102vpmadd52huq 0(%rsi),%ymm1,%ymm3103vpmadd52huq 32(%rsi),%ymm1,%ymm4104vpmadd52huq 64(%rsi),%ymm1,%ymm5105vpmadd52huq 96(%rsi),%ymm1,%ymm6106vpmadd52huq 128(%rsi),%ymm1,%ymm7107vpmadd52huq 160(%rsi),%ymm1,%ymm8108vpmadd52huq 192(%rsi),%ymm1,%ymm9109vpmadd52huq 224(%rsi),%ymm1,%ymm10110111vpmadd52huq 0(%rcx),%ymm2,%ymm3112vpmadd52huq 32(%rcx),%ymm2,%ymm4113vpmadd52huq 64(%rcx),%ymm2,%ymm5114vpmadd52huq 96(%rcx),%ymm2,%ymm6115vpmadd52huq 128(%rcx),%ymm2,%ymm7116vpmadd52huq 160(%rcx),%ymm2,%ymm8117vpmadd52huq 192(%rcx),%ymm2,%ymm9118vpmadd52huq 224(%rcx),%ymm2,%ymm10119movq 8(%r11),%r13120121vpbroadcastq %r13,%ymm1122movq 0(%rsi),%rdx123mulxq %r13,%r13,%r12124addq %r13,%r9125movq %r12,%r10126adcq $0,%r10127128movq %r8,%r13129imulq %r9,%r13130andq %rax,%r13131132vpbroadcastq %r13,%ymm2133movq 0(%rcx),%rdx134mulxq %r13,%r13,%r12135addq %r13,%r9136adcq %r12,%r10137138shrq $52,%r9139salq $12,%r10140orq %r10,%r9141142vpmadd52luq 0(%rsi),%ymm1,%ymm3143vpmadd52luq 32(%rsi),%ymm1,%ymm4144vpmadd52luq 64(%rsi),%ymm1,%ymm5145vpmadd52luq 96(%rsi),%ymm1,%ymm6146vpmadd52luq 128(%rsi),%ymm1,%ymm7147vpmadd52luq 160(%rsi),%ymm1,%ymm8148vpmadd52luq 192(%rsi),%ymm1,%ymm9149vpmadd52luq 224(%rsi),%ymm1,%ymm10150151vpmadd52luq 0(%rcx),%ymm2,%ymm3152vpmadd52luq 32(%rcx),%ymm2,%ymm4153vpmadd52luq 64(%rcx),%ymm2,%ymm5154vpmadd52luq 96(%rcx),%ymm2,%ymm6155vpmadd52luq 128(%rcx),%ymm2,%ymm7156vpmadd52luq 160(%rcx),%ymm2,%ymm8157vpmadd52luq 192(%rcx),%ymm2,%ymm9158vpmadd52luq 224(%rcx),%ymm2,%ymm10159160161valignq $1,%ymm3,%ymm4,%ymm3162valignq $1,%ymm4,%ymm5,%ymm4163valignq $1,%ymm5,%ymm6,%ymm5164valignq $1,%ymm6,%ymm7,%ymm6165valignq $1,%ymm7,%ymm8,%ymm7166valignq $1,%ymm8,%ymm9,%ymm8167valignq $1,%ymm9,%ymm10,%ymm9168valignq $1,%ymm10,%ymm0,%ymm10169170vmovq %xmm3,%r13171addq %r13,%r9172173vpmadd52huq 0(%rsi),%ymm1,%ymm3174vpmadd52huq 32(%rsi),%ymm1,%ymm4175vpmadd52huq 64(%rsi),%ymm1,%ymm5176vpmadd52huq 96(%rsi),%ymm1,%ymm6177vpmadd52huq 128(%rsi),%ymm1,%ymm7178vpmadd52huq 160(%rsi),%ymm1,%ymm8179vpmadd52huq 192(%rsi),%ymm1,%ymm9180vpmadd52huq 224(%rsi),%ymm1,%ymm10181182vpmadd52huq 0(%rcx),%ymm2,%ymm3183vpmadd52huq 32(%rcx),%ymm2,%ymm4184vpmadd52huq 64(%rcx),%ymm2,%ymm5185vpmadd52huq 96(%rcx),%ymm2,%ymm6186vpmadd52huq 128(%rcx),%ymm2,%ymm7187vpmadd52huq 160(%rcx),%ymm2,%ymm8188vpmadd52huq 192(%rcx),%ymm2,%ymm9189vpmadd52huq 224(%rcx),%ymm2,%ymm10190movq 16(%r11),%r13191192vpbroadcastq %r13,%ymm1193movq 0(%rsi),%rdx194mulxq %r13,%r13,%r12195addq %r13,%r9196movq %r12,%r10197adcq $0,%r10198199movq %r8,%r13200imulq %r9,%r13201andq %rax,%r13202203vpbroadcastq %r13,%ymm2204movq 0(%rcx),%rdx205mulxq %r13,%r13,%r12206addq %r13,%r9207adcq %r12,%r10208209shrq $52,%r9210salq $12,%r10211orq %r10,%r9212213vpmadd52luq 0(%rsi),%ymm1,%ymm3214vpmadd52luq 32(%rsi),%ymm1,%ymm4215vpmadd52luq 64(%rsi),%ymm1,%ymm5216vpmadd52luq 96(%rsi),%ymm1,%ymm6217vpmadd52luq 128(%rsi),%ymm1,%ymm7218vpmadd52luq 160(%rsi),%ymm1,%ymm8219vpmadd52luq 192(%rsi),%ymm1,%ymm9220vpmadd52luq 224(%rsi),%ymm1,%ymm10221222vpmadd52luq 0(%rcx),%ymm2,%ymm3223vpmadd52luq 32(%rcx),%ymm2,%ymm4224vpmadd52luq 64(%rcx),%ymm2,%ymm5225vpmadd52luq 96(%rcx),%ymm2,%ymm6226vpmadd52luq 128(%rcx),%ymm2,%ymm7227vpmadd52luq 160(%rcx),%ymm2,%ymm8228vpmadd52luq 192(%rcx),%ymm2,%ymm9229vpmadd52luq 224(%rcx),%ymm2,%ymm10230231232valignq $1,%ymm3,%ymm4,%ymm3233valignq $1,%ymm4,%ymm5,%ymm4234valignq $1,%ymm5,%ymm6,%ymm5235valignq $1,%ymm6,%ymm7,%ymm6236valignq $1,%ymm7,%ymm8,%ymm7237valignq $1,%ymm8,%ymm9,%ymm8238valignq $1,%ymm9,%ymm10,%ymm9239valignq $1,%ymm10,%ymm0,%ymm10240241vmovq %xmm3,%r13242addq %r13,%r9243244vpmadd52huq 0(%rsi),%ymm1,%ymm3245vpmadd52huq 32(%rsi),%ymm1,%ymm4246vpmadd52huq 64(%rsi),%ymm1,%ymm5247vpmadd52huq 96(%rsi),%ymm1,%ymm6248vpmadd52huq 128(%rsi),%ymm1,%ymm7249vpmadd52huq 160(%rsi),%ymm1,%ymm8250vpmadd52huq 192(%rsi),%ymm1,%ymm9251vpmadd52huq 224(%rsi),%ymm1,%ymm10252253vpmadd52huq 0(%rcx),%ymm2,%ymm3254vpmadd52huq 32(%rcx),%ymm2,%ymm4255vpmadd52huq 64(%rcx),%ymm2,%ymm5256vpmadd52huq 96(%rcx),%ymm2,%ymm6257vpmadd52huq 128(%rcx),%ymm2,%ymm7258vpmadd52huq 160(%rcx),%ymm2,%ymm8259vpmadd52huq 192(%rcx),%ymm2,%ymm9260vpmadd52huq 224(%rcx),%ymm2,%ymm10261movq 24(%r11),%r13262263vpbroadcastq %r13,%ymm1264movq 0(%rsi),%rdx265mulxq %r13,%r13,%r12266addq %r13,%r9267movq %r12,%r10268adcq $0,%r10269270movq %r8,%r13271imulq %r9,%r13272andq %rax,%r13273274vpbroadcastq %r13,%ymm2275movq 0(%rcx),%rdx276mulxq %r13,%r13,%r12277addq %r13,%r9278adcq %r12,%r10279280shrq $52,%r9281salq $12,%r10282orq %r10,%r9283284vpmadd52luq 0(%rsi),%ymm1,%ymm3285vpmadd52luq 32(%rsi),%ymm1,%ymm4286vpmadd52luq 64(%rsi),%ymm1,%ymm5287vpmadd52luq 96(%rsi),%ymm1,%ymm6288vpmadd52luq 128(%rsi),%ymm1,%ymm7289vpmadd52luq 160(%rsi),%ymm1,%ymm8290vpmadd52luq 192(%rsi),%ymm1,%ymm9291vpmadd52luq 224(%rsi),%ymm1,%ymm10292293vpmadd52luq 0(%rcx),%ymm2,%ymm3294vpmadd52luq 32(%rcx),%ymm2,%ymm4295vpmadd52luq 64(%rcx),%ymm2,%ymm5296vpmadd52luq 96(%rcx),%ymm2,%ymm6297vpmadd52luq 128(%rcx),%ymm2,%ymm7298vpmadd52luq 160(%rcx),%ymm2,%ymm8299vpmadd52luq 192(%rcx),%ymm2,%ymm9300vpmadd52luq 224(%rcx),%ymm2,%ymm10301302303valignq $1,%ymm3,%ymm4,%ymm3304valignq $1,%ymm4,%ymm5,%ymm4305valignq $1,%ymm5,%ymm6,%ymm5306valignq $1,%ymm6,%ymm7,%ymm6307valignq $1,%ymm7,%ymm8,%ymm7308valignq $1,%ymm8,%ymm9,%ymm8309valignq $1,%ymm9,%ymm10,%ymm9310valignq $1,%ymm10,%ymm0,%ymm10311312vmovq %xmm3,%r13313addq %r13,%r9314315vpmadd52huq 0(%rsi),%ymm1,%ymm3316vpmadd52huq 32(%rsi),%ymm1,%ymm4317vpmadd52huq 64(%rsi),%ymm1,%ymm5318vpmadd52huq 96(%rsi),%ymm1,%ymm6319vpmadd52huq 128(%rsi),%ymm1,%ymm7320vpmadd52huq 160(%rsi),%ymm1,%ymm8321vpmadd52huq 192(%rsi),%ymm1,%ymm9322vpmadd52huq 224(%rsi),%ymm1,%ymm10323324vpmadd52huq 0(%rcx),%ymm2,%ymm3325vpmadd52huq 32(%rcx),%ymm2,%ymm4326vpmadd52huq 64(%rcx),%ymm2,%ymm5327vpmadd52huq 96(%rcx),%ymm2,%ymm6328vpmadd52huq 128(%rcx),%ymm2,%ymm7329vpmadd52huq 160(%rcx),%ymm2,%ymm8330vpmadd52huq 192(%rcx),%ymm2,%ymm9331vpmadd52huq 224(%rcx),%ymm2,%ymm10332leaq 32(%r11),%r11333decl %ebx334jne .Lloop7335movq 0(%r11),%r13336337vpbroadcastq %r13,%ymm1338movq 0(%rsi),%rdx339mulxq %r13,%r13,%r12340addq %r13,%r9341movq %r12,%r10342adcq $0,%r10343344movq %r8,%r13345imulq %r9,%r13346andq %rax,%r13347348vpbroadcastq %r13,%ymm2349movq 0(%rcx),%rdx350mulxq %r13,%r13,%r12351addq %r13,%r9352adcq %r12,%r10353354shrq $52,%r9355salq $12,%r10356orq %r10,%r9357358vpmadd52luq 0(%rsi),%ymm1,%ymm3359vpmadd52luq 32(%rsi),%ymm1,%ymm4360vpmadd52luq 64(%rsi),%ymm1,%ymm5361vpmadd52luq 96(%rsi),%ymm1,%ymm6362vpmadd52luq 128(%rsi),%ymm1,%ymm7363vpmadd52luq 160(%rsi),%ymm1,%ymm8364vpmadd52luq 192(%rsi),%ymm1,%ymm9365vpmadd52luq 224(%rsi),%ymm1,%ymm10366367vpmadd52luq 0(%rcx),%ymm2,%ymm3368vpmadd52luq 32(%rcx),%ymm2,%ymm4369vpmadd52luq 64(%rcx),%ymm2,%ymm5370vpmadd52luq 96(%rcx),%ymm2,%ymm6371vpmadd52luq 128(%rcx),%ymm2,%ymm7372vpmadd52luq 160(%rcx),%ymm2,%ymm8373vpmadd52luq 192(%rcx),%ymm2,%ymm9374vpmadd52luq 224(%rcx),%ymm2,%ymm10375376377valignq $1,%ymm3,%ymm4,%ymm3378valignq $1,%ymm4,%ymm5,%ymm4379valignq $1,%ymm5,%ymm6,%ymm5380valignq $1,%ymm6,%ymm7,%ymm6381valignq $1,%ymm7,%ymm8,%ymm7382valignq $1,%ymm8,%ymm9,%ymm8383valignq $1,%ymm9,%ymm10,%ymm9384valignq $1,%ymm10,%ymm0,%ymm10385386vmovq %xmm3,%r13387addq %r13,%r9388389vpmadd52huq 0(%rsi),%ymm1,%ymm3390vpmadd52huq 32(%rsi),%ymm1,%ymm4391vpmadd52huq 64(%rsi),%ymm1,%ymm5392vpmadd52huq 96(%rsi),%ymm1,%ymm6393vpmadd52huq 128(%rsi),%ymm1,%ymm7394vpmadd52huq 160(%rsi),%ymm1,%ymm8395vpmadd52huq 192(%rsi),%ymm1,%ymm9396vpmadd52huq 224(%rsi),%ymm1,%ymm10397398vpmadd52huq 0(%rcx),%ymm2,%ymm3399vpmadd52huq 32(%rcx),%ymm2,%ymm4400vpmadd52huq 64(%rcx),%ymm2,%ymm5401vpmadd52huq 96(%rcx),%ymm2,%ymm6402vpmadd52huq 128(%rcx),%ymm2,%ymm7403vpmadd52huq 160(%rcx),%ymm2,%ymm8404vpmadd52huq 192(%rcx),%ymm2,%ymm9405vpmadd52huq 224(%rcx),%ymm2,%ymm10406movq 8(%r11),%r13407408vpbroadcastq %r13,%ymm1409movq 0(%rsi),%rdx410mulxq %r13,%r13,%r12411addq %r13,%r9412movq %r12,%r10413adcq $0,%r10414415movq %r8,%r13416imulq %r9,%r13417andq %rax,%r13418419vpbroadcastq %r13,%ymm2420movq 0(%rcx),%rdx421mulxq %r13,%r13,%r12422addq %r13,%r9423adcq %r12,%r10424425shrq $52,%r9426salq $12,%r10427orq %r10,%r9428429vpmadd52luq 0(%rsi),%ymm1,%ymm3430vpmadd52luq 32(%rsi),%ymm1,%ymm4431vpmadd52luq 64(%rsi),%ymm1,%ymm5432vpmadd52luq 96(%rsi),%ymm1,%ymm6433vpmadd52luq 128(%rsi),%ymm1,%ymm7434vpmadd52luq 160(%rsi),%ymm1,%ymm8435vpmadd52luq 192(%rsi),%ymm1,%ymm9436vpmadd52luq 224(%rsi),%ymm1,%ymm10437438vpmadd52luq 0(%rcx),%ymm2,%ymm3439vpmadd52luq 32(%rcx),%ymm2,%ymm4440vpmadd52luq 64(%rcx),%ymm2,%ymm5441vpmadd52luq 96(%rcx),%ymm2,%ymm6442vpmadd52luq 128(%rcx),%ymm2,%ymm7443vpmadd52luq 160(%rcx),%ymm2,%ymm8444vpmadd52luq 192(%rcx),%ymm2,%ymm9445vpmadd52luq 224(%rcx),%ymm2,%ymm10446447448valignq $1,%ymm3,%ymm4,%ymm3449valignq $1,%ymm4,%ymm5,%ymm4450valignq $1,%ymm5,%ymm6,%ymm5451valignq $1,%ymm6,%ymm7,%ymm6452valignq $1,%ymm7,%ymm8,%ymm7453valignq $1,%ymm8,%ymm9,%ymm8454valignq $1,%ymm9,%ymm10,%ymm9455valignq $1,%ymm10,%ymm0,%ymm10456457vmovq %xmm3,%r13458addq %r13,%r9459460vpmadd52huq 0(%rsi),%ymm1,%ymm3461vpmadd52huq 32(%rsi),%ymm1,%ymm4462vpmadd52huq 64(%rsi),%ymm1,%ymm5463vpmadd52huq 96(%rsi),%ymm1,%ymm6464vpmadd52huq 128(%rsi),%ymm1,%ymm7465vpmadd52huq 160(%rsi),%ymm1,%ymm8466vpmadd52huq 192(%rsi),%ymm1,%ymm9467vpmadd52huq 224(%rsi),%ymm1,%ymm10468469vpmadd52huq 0(%rcx),%ymm2,%ymm3470vpmadd52huq 32(%rcx),%ymm2,%ymm4471vpmadd52huq 64(%rcx),%ymm2,%ymm5472vpmadd52huq 96(%rcx),%ymm2,%ymm6473vpmadd52huq 128(%rcx),%ymm2,%ymm7474vpmadd52huq 160(%rcx),%ymm2,%ymm8475vpmadd52huq 192(%rcx),%ymm2,%ymm9476vpmadd52huq 224(%rcx),%ymm2,%ymm10477478vpbroadcastq %r9,%ymm0479vpblendd $3,%ymm0,%ymm3,%ymm3480481482483vpsrlq $52,%ymm3,%ymm0484vpsrlq $52,%ymm4,%ymm1485vpsrlq $52,%ymm5,%ymm2486vpsrlq $52,%ymm6,%ymm19487vpsrlq $52,%ymm7,%ymm20488vpsrlq $52,%ymm8,%ymm21489vpsrlq $52,%ymm9,%ymm22490vpsrlq $52,%ymm10,%ymm23491492493valignq $3,%ymm22,%ymm23,%ymm23494valignq $3,%ymm21,%ymm22,%ymm22495valignq $3,%ymm20,%ymm21,%ymm21496valignq $3,%ymm19,%ymm20,%ymm20497valignq $3,%ymm2,%ymm19,%ymm19498valignq $3,%ymm1,%ymm2,%ymm2499valignq $3,%ymm0,%ymm1,%ymm1500valignq $3,.Lzeros(%rip),%ymm0,%ymm0501502503vpandq .Lmask52x4(%rip),%ymm3,%ymm3504vpandq .Lmask52x4(%rip),%ymm4,%ymm4505vpandq .Lmask52x4(%rip),%ymm5,%ymm5506vpandq .Lmask52x4(%rip),%ymm6,%ymm6507vpandq .Lmask52x4(%rip),%ymm7,%ymm7508vpandq .Lmask52x4(%rip),%ymm8,%ymm8509vpandq .Lmask52x4(%rip),%ymm9,%ymm9510vpandq .Lmask52x4(%rip),%ymm10,%ymm10511512513vpaddq %ymm0,%ymm3,%ymm3514vpaddq %ymm1,%ymm4,%ymm4515vpaddq %ymm2,%ymm5,%ymm5516vpaddq %ymm19,%ymm6,%ymm6517vpaddq %ymm20,%ymm7,%ymm7518vpaddq %ymm21,%ymm8,%ymm8519vpaddq %ymm22,%ymm9,%ymm9520vpaddq %ymm23,%ymm10,%ymm10521522523524vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1525vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2526kmovb %k1,%r14d527kmovb %k2,%r13d528shlb $4,%r13b529orb %r13b,%r14b530531vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1532vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2533kmovb %k1,%r13d534kmovb %k2,%r12d535shlb $4,%r12b536orb %r12b,%r13b537538vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1539vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2540kmovb %k1,%r12d541kmovb %k2,%r11d542shlb $4,%r11b543orb %r11b,%r12b544545vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1546vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2547kmovb %k1,%r11d548kmovb %k2,%r10d549shlb $4,%r10b550orb %r10b,%r11b551552addb %r14b,%r14b553adcb %r13b,%r13b554adcb %r12b,%r12b555adcb %r11b,%r11b556557558vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1559vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2560kmovb %k1,%r9d561kmovb %k2,%r8d562shlb $4,%r8b563orb %r8b,%r9b564565vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1566vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2567kmovb %k1,%r8d568kmovb %k2,%edx569shlb $4,%dl570orb %dl,%r8b571572vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1573vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2574kmovb %k1,%edx575kmovb %k2,%ecx576shlb $4,%cl577orb %cl,%dl578579vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1580vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2581kmovb %k1,%ecx582kmovb %k2,%ebx583shlb $4,%bl584orb %bl,%cl585586addb %r9b,%r14b587adcb %r8b,%r13b588adcb %dl,%r12b589adcb %cl,%r11b590591xorb %r9b,%r14b592xorb %r8b,%r13b593xorb %dl,%r12b594xorb %cl,%r11b595596kmovb %r14d,%k1597shrb $4,%r14b598kmovb %r14d,%k2599kmovb %r13d,%k3600shrb $4,%r13b601kmovb %r13d,%k4602kmovb %r12d,%k5603shrb $4,%r12b604kmovb %r12d,%k6605kmovb %r11d,%k7606607vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}608vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}609vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}610vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}611vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}612vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}613vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}614615vpandq .Lmask52x4(%rip),%ymm3,%ymm3616vpandq .Lmask52x4(%rip),%ymm4,%ymm4617vpandq .Lmask52x4(%rip),%ymm5,%ymm5618vpandq .Lmask52x4(%rip),%ymm6,%ymm6619vpandq .Lmask52x4(%rip),%ymm7,%ymm7620vpandq .Lmask52x4(%rip),%ymm8,%ymm8621vpandq .Lmask52x4(%rip),%ymm9,%ymm9622623shrb $4,%r11b624kmovb %r11d,%k1625626vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}627628vpandq .Lmask52x4(%rip),%ymm10,%ymm10629630vmovdqu64 %ymm3,0(%rdi)631vmovdqu64 %ymm4,32(%rdi)632vmovdqu64 %ymm5,64(%rdi)633vmovdqu64 %ymm6,96(%rdi)634vmovdqu64 %ymm7,128(%rdi)635vmovdqu64 %ymm8,160(%rdi)636vmovdqu64 %ymm9,192(%rdi)637vmovdqu64 %ymm10,224(%rdi)638639vzeroupper640leaq (%rsp),%rax641.cfi_def_cfa_register %rax642movq 0(%rax),%r15643.cfi_restore %r15644movq 8(%rax),%r14645.cfi_restore %r14646movq 16(%rax),%r13647.cfi_restore %r13648movq 24(%rax),%r12649.cfi_restore %r12650movq 32(%rax),%rbp651.cfi_restore %rbp652movq 40(%rax),%rbx653.cfi_restore %rbx654leaq 48(%rax),%rsp655.cfi_def_cfa %rsp,8656.Lossl_rsaz_amm52x30_x1_ifma256_epilogue:657.byte 0xf3,0xc3658.cfi_endproc659.size ossl_rsaz_amm52x30_x1_ifma256, .-ossl_rsaz_amm52x30_x1_ifma256660.section .rodata661.align 32662.Lmask52x4:663.quad 0xfffffffffffff664.quad 0xfffffffffffff665.quad 0xfffffffffffff666.quad 0xfffffffffffff667.text668669.globl ossl_rsaz_amm52x30_x2_ifma256670.type ossl_rsaz_amm52x30_x2_ifma256,@function671.align 32672ossl_rsaz_amm52x30_x2_ifma256:673.cfi_startproc674.byte 243,15,30,250675pushq %rbx676.cfi_adjust_cfa_offset 8677.cfi_offset %rbx,-16678pushq %rbp679.cfi_adjust_cfa_offset 8680.cfi_offset %rbp,-24681pushq %r12682.cfi_adjust_cfa_offset 8683.cfi_offset %r12,-32684pushq %r13685.cfi_adjust_cfa_offset 8686.cfi_offset %r13,-40687pushq %r14688.cfi_adjust_cfa_offset 8689.cfi_offset %r14,-48690pushq %r15691.cfi_adjust_cfa_offset 8692.cfi_offset %r15,-56693694vpxord %ymm0,%ymm0,%ymm0695vmovdqa64 %ymm0,%ymm3696vmovdqa64 %ymm0,%ymm4697vmovdqa64 %ymm0,%ymm5698vmovdqa64 %ymm0,%ymm6699vmovdqa64 %ymm0,%ymm7700vmovdqa64 %ymm0,%ymm8701vmovdqa64 %ymm0,%ymm9702vmovdqa64 %ymm0,%ymm10703704vmovdqa64 %ymm0,%ymm11705vmovdqa64 %ymm0,%ymm12706vmovdqa64 %ymm0,%ymm13707vmovdqa64 %ymm0,%ymm14708vmovdqa64 %ymm0,%ymm15709vmovdqa64 %ymm0,%ymm16710vmovdqa64 %ymm0,%ymm17711vmovdqa64 %ymm0,%ymm18712713714xorl %r9d,%r9d715xorl %r15d,%r15d716717movq %rdx,%r11718movq $0xfffffffffffff,%rax719720movl $30,%ebx721722.align 32723.Lloop30:724movq 0(%r11),%r13725726vpbroadcastq %r13,%ymm1727movq 0(%rsi),%rdx728mulxq %r13,%r13,%r12729addq %r13,%r9730movq %r12,%r10731adcq $0,%r10732733movq (%r8),%r13734imulq %r9,%r13735andq %rax,%r13736737vpbroadcastq %r13,%ymm2738movq 0(%rcx),%rdx739mulxq %r13,%r13,%r12740addq %r13,%r9741adcq %r12,%r10742743shrq $52,%r9744salq $12,%r10745orq %r10,%r9746747vpmadd52luq 0(%rsi),%ymm1,%ymm3748vpmadd52luq 32(%rsi),%ymm1,%ymm4749vpmadd52luq 64(%rsi),%ymm1,%ymm5750vpmadd52luq 96(%rsi),%ymm1,%ymm6751vpmadd52luq 128(%rsi),%ymm1,%ymm7752vpmadd52luq 160(%rsi),%ymm1,%ymm8753vpmadd52luq 192(%rsi),%ymm1,%ymm9754vpmadd52luq 224(%rsi),%ymm1,%ymm10755756vpmadd52luq 0(%rcx),%ymm2,%ymm3757vpmadd52luq 32(%rcx),%ymm2,%ymm4758vpmadd52luq 64(%rcx),%ymm2,%ymm5759vpmadd52luq 96(%rcx),%ymm2,%ymm6760vpmadd52luq 128(%rcx),%ymm2,%ymm7761vpmadd52luq 160(%rcx),%ymm2,%ymm8762vpmadd52luq 192(%rcx),%ymm2,%ymm9763vpmadd52luq 224(%rcx),%ymm2,%ymm10764765766valignq $1,%ymm3,%ymm4,%ymm3767valignq $1,%ymm4,%ymm5,%ymm4768valignq $1,%ymm5,%ymm6,%ymm5769valignq $1,%ymm6,%ymm7,%ymm6770valignq $1,%ymm7,%ymm8,%ymm7771valignq $1,%ymm8,%ymm9,%ymm8772valignq $1,%ymm9,%ymm10,%ymm9773valignq $1,%ymm10,%ymm0,%ymm10774775vmovq %xmm3,%r13776addq %r13,%r9777778vpmadd52huq 0(%rsi),%ymm1,%ymm3779vpmadd52huq 32(%rsi),%ymm1,%ymm4780vpmadd52huq 64(%rsi),%ymm1,%ymm5781vpmadd52huq 96(%rsi),%ymm1,%ymm6782vpmadd52huq 128(%rsi),%ymm1,%ymm7783vpmadd52huq 160(%rsi),%ymm1,%ymm8784vpmadd52huq 192(%rsi),%ymm1,%ymm9785vpmadd52huq 224(%rsi),%ymm1,%ymm10786787vpmadd52huq 0(%rcx),%ymm2,%ymm3788vpmadd52huq 32(%rcx),%ymm2,%ymm4789vpmadd52huq 64(%rcx),%ymm2,%ymm5790vpmadd52huq 96(%rcx),%ymm2,%ymm6791vpmadd52huq 128(%rcx),%ymm2,%ymm7792vpmadd52huq 160(%rcx),%ymm2,%ymm8793vpmadd52huq 192(%rcx),%ymm2,%ymm9794vpmadd52huq 224(%rcx),%ymm2,%ymm10795movq 256(%r11),%r13796797vpbroadcastq %r13,%ymm1798movq 256(%rsi),%rdx799mulxq %r13,%r13,%r12800addq %r13,%r15801movq %r12,%r10802adcq $0,%r10803804movq 8(%r8),%r13805imulq %r15,%r13806andq %rax,%r13807808vpbroadcastq %r13,%ymm2809movq 256(%rcx),%rdx810mulxq %r13,%r13,%r12811addq %r13,%r15812adcq %r12,%r10813814shrq $52,%r15815salq $12,%r10816orq %r10,%r15817818vpmadd52luq 256(%rsi),%ymm1,%ymm11819vpmadd52luq 288(%rsi),%ymm1,%ymm12820vpmadd52luq 320(%rsi),%ymm1,%ymm13821vpmadd52luq 352(%rsi),%ymm1,%ymm14822vpmadd52luq 384(%rsi),%ymm1,%ymm15823vpmadd52luq 416(%rsi),%ymm1,%ymm16824vpmadd52luq 448(%rsi),%ymm1,%ymm17825vpmadd52luq 480(%rsi),%ymm1,%ymm18826827vpmadd52luq 256(%rcx),%ymm2,%ymm11828vpmadd52luq 288(%rcx),%ymm2,%ymm12829vpmadd52luq 320(%rcx),%ymm2,%ymm13830vpmadd52luq 352(%rcx),%ymm2,%ymm14831vpmadd52luq 384(%rcx),%ymm2,%ymm15832vpmadd52luq 416(%rcx),%ymm2,%ymm16833vpmadd52luq 448(%rcx),%ymm2,%ymm17834vpmadd52luq 480(%rcx),%ymm2,%ymm18835836837valignq $1,%ymm11,%ymm12,%ymm11838valignq $1,%ymm12,%ymm13,%ymm12839valignq $1,%ymm13,%ymm14,%ymm13840valignq $1,%ymm14,%ymm15,%ymm14841valignq $1,%ymm15,%ymm16,%ymm15842valignq $1,%ymm16,%ymm17,%ymm16843valignq $1,%ymm17,%ymm18,%ymm17844valignq $1,%ymm18,%ymm0,%ymm18845846vmovq %xmm11,%r13847addq %r13,%r15848849vpmadd52huq 256(%rsi),%ymm1,%ymm11850vpmadd52huq 288(%rsi),%ymm1,%ymm12851vpmadd52huq 320(%rsi),%ymm1,%ymm13852vpmadd52huq 352(%rsi),%ymm1,%ymm14853vpmadd52huq 384(%rsi),%ymm1,%ymm15854vpmadd52huq 416(%rsi),%ymm1,%ymm16855vpmadd52huq 448(%rsi),%ymm1,%ymm17856vpmadd52huq 480(%rsi),%ymm1,%ymm18857858vpmadd52huq 256(%rcx),%ymm2,%ymm11859vpmadd52huq 288(%rcx),%ymm2,%ymm12860vpmadd52huq 320(%rcx),%ymm2,%ymm13861vpmadd52huq 352(%rcx),%ymm2,%ymm14862vpmadd52huq 384(%rcx),%ymm2,%ymm15863vpmadd52huq 416(%rcx),%ymm2,%ymm16864vpmadd52huq 448(%rcx),%ymm2,%ymm17865vpmadd52huq 480(%rcx),%ymm2,%ymm18866leaq 8(%r11),%r11867decl %ebx868jne .Lloop30869870vpbroadcastq %r9,%ymm0871vpblendd $3,%ymm0,%ymm3,%ymm3872873874875vpsrlq $52,%ymm3,%ymm0876vpsrlq $52,%ymm4,%ymm1877vpsrlq $52,%ymm5,%ymm2878vpsrlq $52,%ymm6,%ymm19879vpsrlq $52,%ymm7,%ymm20880vpsrlq $52,%ymm8,%ymm21881vpsrlq $52,%ymm9,%ymm22882vpsrlq $52,%ymm10,%ymm23883884885valignq $3,%ymm22,%ymm23,%ymm23886valignq $3,%ymm21,%ymm22,%ymm22887valignq $3,%ymm20,%ymm21,%ymm21888valignq $3,%ymm19,%ymm20,%ymm20889valignq $3,%ymm2,%ymm19,%ymm19890valignq $3,%ymm1,%ymm2,%ymm2891valignq $3,%ymm0,%ymm1,%ymm1892valignq $3,.Lzeros(%rip),%ymm0,%ymm0893894895vpandq .Lmask52x4(%rip),%ymm3,%ymm3896vpandq .Lmask52x4(%rip),%ymm4,%ymm4897vpandq .Lmask52x4(%rip),%ymm5,%ymm5898vpandq .Lmask52x4(%rip),%ymm6,%ymm6899vpandq .Lmask52x4(%rip),%ymm7,%ymm7900vpandq .Lmask52x4(%rip),%ymm8,%ymm8901vpandq .Lmask52x4(%rip),%ymm9,%ymm9902vpandq .Lmask52x4(%rip),%ymm10,%ymm10903904905vpaddq %ymm0,%ymm3,%ymm3906vpaddq %ymm1,%ymm4,%ymm4907vpaddq %ymm2,%ymm5,%ymm5908vpaddq %ymm19,%ymm6,%ymm6909vpaddq %ymm20,%ymm7,%ymm7910vpaddq %ymm21,%ymm8,%ymm8911vpaddq %ymm22,%ymm9,%ymm9912vpaddq %ymm23,%ymm10,%ymm10913914915916vpcmpuq $6,.Lmask52x4(%rip),%ymm3,%k1917vpcmpuq $6,.Lmask52x4(%rip),%ymm4,%k2918kmovb %k1,%r14d919kmovb %k2,%r13d920shlb $4,%r13b921orb %r13b,%r14b922923vpcmpuq $6,.Lmask52x4(%rip),%ymm5,%k1924vpcmpuq $6,.Lmask52x4(%rip),%ymm6,%k2925kmovb %k1,%r13d926kmovb %k2,%r12d927shlb $4,%r12b928orb %r12b,%r13b929930vpcmpuq $6,.Lmask52x4(%rip),%ymm7,%k1931vpcmpuq $6,.Lmask52x4(%rip),%ymm8,%k2932kmovb %k1,%r12d933kmovb %k2,%r11d934shlb $4,%r11b935orb %r11b,%r12b936937vpcmpuq $6,.Lmask52x4(%rip),%ymm9,%k1938vpcmpuq $6,.Lmask52x4(%rip),%ymm10,%k2939kmovb %k1,%r11d940kmovb %k2,%r10d941shlb $4,%r10b942orb %r10b,%r11b943944addb %r14b,%r14b945adcb %r13b,%r13b946adcb %r12b,%r12b947adcb %r11b,%r11b948949950vpcmpuq $0,.Lmask52x4(%rip),%ymm3,%k1951vpcmpuq $0,.Lmask52x4(%rip),%ymm4,%k2952kmovb %k1,%r9d953kmovb %k2,%r8d954shlb $4,%r8b955orb %r8b,%r9b956957vpcmpuq $0,.Lmask52x4(%rip),%ymm5,%k1958vpcmpuq $0,.Lmask52x4(%rip),%ymm6,%k2959kmovb %k1,%r8d960kmovb %k2,%edx961shlb $4,%dl962orb %dl,%r8b963964vpcmpuq $0,.Lmask52x4(%rip),%ymm7,%k1965vpcmpuq $0,.Lmask52x4(%rip),%ymm8,%k2966kmovb %k1,%edx967kmovb %k2,%ecx968shlb $4,%cl969orb %cl,%dl970971vpcmpuq $0,.Lmask52x4(%rip),%ymm9,%k1972vpcmpuq $0,.Lmask52x4(%rip),%ymm10,%k2973kmovb %k1,%ecx974kmovb %k2,%ebx975shlb $4,%bl976orb %bl,%cl977978addb %r9b,%r14b979adcb %r8b,%r13b980adcb %dl,%r12b981adcb %cl,%r11b982983xorb %r9b,%r14b984xorb %r8b,%r13b985xorb %dl,%r12b986xorb %cl,%r11b987988kmovb %r14d,%k1989shrb $4,%r14b990kmovb %r14d,%k2991kmovb %r13d,%k3992shrb $4,%r13b993kmovb %r13d,%k4994kmovb %r12d,%k5995shrb $4,%r12b996kmovb %r12d,%k6997kmovb %r11d,%k7998999vpsubq .Lmask52x4(%rip),%ymm3,%ymm3{%k1}1000vpsubq .Lmask52x4(%rip),%ymm4,%ymm4{%k2}1001vpsubq .Lmask52x4(%rip),%ymm5,%ymm5{%k3}1002vpsubq .Lmask52x4(%rip),%ymm6,%ymm6{%k4}1003vpsubq .Lmask52x4(%rip),%ymm7,%ymm7{%k5}1004vpsubq .Lmask52x4(%rip),%ymm8,%ymm8{%k6}1005vpsubq .Lmask52x4(%rip),%ymm9,%ymm9{%k7}10061007vpandq .Lmask52x4(%rip),%ymm3,%ymm31008vpandq .Lmask52x4(%rip),%ymm4,%ymm41009vpandq .Lmask52x4(%rip),%ymm5,%ymm51010vpandq .Lmask52x4(%rip),%ymm6,%ymm61011vpandq .Lmask52x4(%rip),%ymm7,%ymm71012vpandq .Lmask52x4(%rip),%ymm8,%ymm81013vpandq .Lmask52x4(%rip),%ymm9,%ymm910141015shrb $4,%r11b1016kmovb %r11d,%k110171018vpsubq .Lmask52x4(%rip),%ymm10,%ymm10{%k1}10191020vpandq .Lmask52x4(%rip),%ymm10,%ymm1010211022vpbroadcastq %r15,%ymm01023vpblendd $3,%ymm0,%ymm11,%ymm111024102510261027vpsrlq $52,%ymm11,%ymm01028vpsrlq $52,%ymm12,%ymm11029vpsrlq $52,%ymm13,%ymm21030vpsrlq $52,%ymm14,%ymm191031vpsrlq $52,%ymm15,%ymm201032vpsrlq $52,%ymm16,%ymm211033vpsrlq $52,%ymm17,%ymm221034vpsrlq $52,%ymm18,%ymm23103510361037valignq $3,%ymm22,%ymm23,%ymm231038valignq $3,%ymm21,%ymm22,%ymm221039valignq $3,%ymm20,%ymm21,%ymm211040valignq $3,%ymm19,%ymm20,%ymm201041valignq $3,%ymm2,%ymm19,%ymm191042valignq $3,%ymm1,%ymm2,%ymm21043valignq $3,%ymm0,%ymm1,%ymm11044valignq $3,.Lzeros(%rip),%ymm0,%ymm0104510461047vpandq .Lmask52x4(%rip),%ymm11,%ymm111048vpandq .Lmask52x4(%rip),%ymm12,%ymm121049vpandq .Lmask52x4(%rip),%ymm13,%ymm131050vpandq .Lmask52x4(%rip),%ymm14,%ymm141051vpandq .Lmask52x4(%rip),%ymm15,%ymm151052vpandq .Lmask52x4(%rip),%ymm16,%ymm161053vpandq .Lmask52x4(%rip),%ymm17,%ymm171054vpandq .Lmask52x4(%rip),%ymm18,%ymm18105510561057vpaddq %ymm0,%ymm11,%ymm111058vpaddq %ymm1,%ymm12,%ymm121059vpaddq %ymm2,%ymm13,%ymm131060vpaddq %ymm19,%ymm14,%ymm141061vpaddq %ymm20,%ymm15,%ymm151062vpaddq %ymm21,%ymm16,%ymm161063vpaddq %ymm22,%ymm17,%ymm171064vpaddq %ymm23,%ymm18,%ymm181065106610671068vpcmpuq $6,.Lmask52x4(%rip),%ymm11,%k11069vpcmpuq $6,.Lmask52x4(%rip),%ymm12,%k21070kmovb %k1,%r14d1071kmovb %k2,%r13d1072shlb $4,%r13b1073orb %r13b,%r14b10741075vpcmpuq $6,.Lmask52x4(%rip),%ymm13,%k11076vpcmpuq $6,.Lmask52x4(%rip),%ymm14,%k21077kmovb %k1,%r13d1078kmovb %k2,%r12d1079shlb $4,%r12b1080orb %r12b,%r13b10811082vpcmpuq $6,.Lmask52x4(%rip),%ymm15,%k11083vpcmpuq $6,.Lmask52x4(%rip),%ymm16,%k21084kmovb %k1,%r12d1085kmovb %k2,%r11d1086shlb $4,%r11b1087orb %r11b,%r12b10881089vpcmpuq $6,.Lmask52x4(%rip),%ymm17,%k11090vpcmpuq $6,.Lmask52x4(%rip),%ymm18,%k21091kmovb %k1,%r11d1092kmovb %k2,%r10d1093shlb $4,%r10b1094orb %r10b,%r11b10951096addb %r14b,%r14b1097adcb %r13b,%r13b1098adcb %r12b,%r12b1099adcb %r11b,%r11b110011011102vpcmpuq $0,.Lmask52x4(%rip),%ymm11,%k11103vpcmpuq $0,.Lmask52x4(%rip),%ymm12,%k21104kmovb %k1,%r9d1105kmovb %k2,%r8d1106shlb $4,%r8b1107orb %r8b,%r9b11081109vpcmpuq $0,.Lmask52x4(%rip),%ymm13,%k11110vpcmpuq $0,.Lmask52x4(%rip),%ymm14,%k21111kmovb %k1,%r8d1112kmovb %k2,%edx1113shlb $4,%dl1114orb %dl,%r8b11151116vpcmpuq $0,.Lmask52x4(%rip),%ymm15,%k11117vpcmpuq $0,.Lmask52x4(%rip),%ymm16,%k21118kmovb %k1,%edx1119kmovb %k2,%ecx1120shlb $4,%cl1121orb %cl,%dl11221123vpcmpuq $0,.Lmask52x4(%rip),%ymm17,%k11124vpcmpuq $0,.Lmask52x4(%rip),%ymm18,%k21125kmovb %k1,%ecx1126kmovb %k2,%ebx1127shlb $4,%bl1128orb %bl,%cl11291130addb %r9b,%r14b1131adcb %r8b,%r13b1132adcb %dl,%r12b1133adcb %cl,%r11b11341135xorb %r9b,%r14b1136xorb %r8b,%r13b1137xorb %dl,%r12b1138xorb %cl,%r11b11391140kmovb %r14d,%k11141shrb $4,%r14b1142kmovb %r14d,%k21143kmovb %r13d,%k31144shrb $4,%r13b1145kmovb %r13d,%k41146kmovb %r12d,%k51147shrb $4,%r12b1148kmovb %r12d,%k61149kmovb %r11d,%k711501151vpsubq .Lmask52x4(%rip),%ymm11,%ymm11{%k1}1152vpsubq .Lmask52x4(%rip),%ymm12,%ymm12{%k2}1153vpsubq .Lmask52x4(%rip),%ymm13,%ymm13{%k3}1154vpsubq .Lmask52x4(%rip),%ymm14,%ymm14{%k4}1155vpsubq .Lmask52x4(%rip),%ymm15,%ymm15{%k5}1156vpsubq .Lmask52x4(%rip),%ymm16,%ymm16{%k6}1157vpsubq .Lmask52x4(%rip),%ymm17,%ymm17{%k7}11581159vpandq .Lmask52x4(%rip),%ymm11,%ymm111160vpandq .Lmask52x4(%rip),%ymm12,%ymm121161vpandq .Lmask52x4(%rip),%ymm13,%ymm131162vpandq .Lmask52x4(%rip),%ymm14,%ymm141163vpandq .Lmask52x4(%rip),%ymm15,%ymm151164vpandq .Lmask52x4(%rip),%ymm16,%ymm161165vpandq .Lmask52x4(%rip),%ymm17,%ymm1711661167shrb $4,%r11b1168kmovb %r11d,%k111691170vpsubq .Lmask52x4(%rip),%ymm18,%ymm18{%k1}11711172vpandq .Lmask52x4(%rip),%ymm18,%ymm1811731174vmovdqu64 %ymm3,0(%rdi)1175vmovdqu64 %ymm4,32(%rdi)1176vmovdqu64 %ymm5,64(%rdi)1177vmovdqu64 %ymm6,96(%rdi)1178vmovdqu64 %ymm7,128(%rdi)1179vmovdqu64 %ymm8,160(%rdi)1180vmovdqu64 %ymm9,192(%rdi)1181vmovdqu64 %ymm10,224(%rdi)11821183vmovdqu64 %ymm11,256(%rdi)1184vmovdqu64 %ymm12,288(%rdi)1185vmovdqu64 %ymm13,320(%rdi)1186vmovdqu64 %ymm14,352(%rdi)1187vmovdqu64 %ymm15,384(%rdi)1188vmovdqu64 %ymm16,416(%rdi)1189vmovdqu64 %ymm17,448(%rdi)1190vmovdqu64 %ymm18,480(%rdi)11911192vzeroupper1193leaq (%rsp),%rax1194.cfi_def_cfa_register %rax1195movq 0(%rax),%r151196.cfi_restore %r151197movq 8(%rax),%r141198.cfi_restore %r141199movq 16(%rax),%r131200.cfi_restore %r131201movq 24(%rax),%r121202.cfi_restore %r121203movq 32(%rax),%rbp1204.cfi_restore %rbp1205movq 40(%rax),%rbx1206.cfi_restore %rbx1207leaq 48(%rax),%rsp1208.cfi_def_cfa %rsp,81209.Lossl_rsaz_amm52x30_x2_ifma256_epilogue:1210.byte 0xf3,0xc31211.cfi_endproc1212.size ossl_rsaz_amm52x30_x2_ifma256, .-ossl_rsaz_amm52x30_x2_ifma2561213.text12141215.align 321216.globl ossl_extract_multiplier_2x30_win51217.type ossl_extract_multiplier_2x30_win5,@function1218ossl_extract_multiplier_2x30_win5:1219.cfi_startproc1220.byte 243,15,30,2501221vmovdqa64 .Lones(%rip),%ymm301222vpbroadcastq %rdx,%ymm281223vpbroadcastq %rcx,%ymm291224leaq 16384(%rsi),%rax122512261227vpxor %xmm0,%xmm0,%xmm01228vmovdqa64 %ymm0,%ymm271229vmovdqa64 %ymm0,%ymm11230vmovdqa64 %ymm0,%ymm21231vmovdqa64 %ymm0,%ymm31232vmovdqa64 %ymm0,%ymm41233vmovdqa64 %ymm0,%ymm51234vmovdqa64 %ymm0,%ymm161235vmovdqa64 %ymm0,%ymm171236vmovdqa64 %ymm0,%ymm181237vmovdqa64 %ymm0,%ymm191238vmovdqa64 %ymm0,%ymm201239vmovdqa64 %ymm0,%ymm211240vmovdqa64 %ymm0,%ymm221241vmovdqa64 %ymm0,%ymm231242vmovdqa64 %ymm0,%ymm241243vmovdqa64 %ymm0,%ymm2512441245.align 321246.Lloop:1247vpcmpq $0,%ymm27,%ymm28,%k11248vpcmpq $0,%ymm27,%ymm29,%k21249vmovdqu64 0(%rsi),%ymm261250vpblendmq %ymm26,%ymm0,%ymm0{%k1}1251vmovdqu64 32(%rsi),%ymm261252vpblendmq %ymm26,%ymm1,%ymm1{%k1}1253vmovdqu64 64(%rsi),%ymm261254vpblendmq %ymm26,%ymm2,%ymm2{%k1}1255vmovdqu64 96(%rsi),%ymm261256vpblendmq %ymm26,%ymm3,%ymm3{%k1}1257vmovdqu64 128(%rsi),%ymm261258vpblendmq %ymm26,%ymm4,%ymm4{%k1}1259vmovdqu64 160(%rsi),%ymm261260vpblendmq %ymm26,%ymm5,%ymm5{%k1}1261vmovdqu64 192(%rsi),%ymm261262vpblendmq %ymm26,%ymm16,%ymm16{%k1}1263vmovdqu64 224(%rsi),%ymm261264vpblendmq %ymm26,%ymm17,%ymm17{%k1}1265vmovdqu64 256(%rsi),%ymm261266vpblendmq %ymm26,%ymm18,%ymm18{%k2}1267vmovdqu64 288(%rsi),%ymm261268vpblendmq %ymm26,%ymm19,%ymm19{%k2}1269vmovdqu64 320(%rsi),%ymm261270vpblendmq %ymm26,%ymm20,%ymm20{%k2}1271vmovdqu64 352(%rsi),%ymm261272vpblendmq %ymm26,%ymm21,%ymm21{%k2}1273vmovdqu64 384(%rsi),%ymm261274vpblendmq %ymm26,%ymm22,%ymm22{%k2}1275vmovdqu64 416(%rsi),%ymm261276vpblendmq %ymm26,%ymm23,%ymm23{%k2}1277vmovdqu64 448(%rsi),%ymm261278vpblendmq %ymm26,%ymm24,%ymm24{%k2}1279vmovdqu64 480(%rsi),%ymm261280vpblendmq %ymm26,%ymm25,%ymm25{%k2}1281vpaddq %ymm30,%ymm27,%ymm271282addq $512,%rsi1283cmpq %rsi,%rax1284jne .Lloop1285vmovdqu64 %ymm0,0(%rdi)1286vmovdqu64 %ymm1,32(%rdi)1287vmovdqu64 %ymm2,64(%rdi)1288vmovdqu64 %ymm3,96(%rdi)1289vmovdqu64 %ymm4,128(%rdi)1290vmovdqu64 %ymm5,160(%rdi)1291vmovdqu64 %ymm16,192(%rdi)1292vmovdqu64 %ymm17,224(%rdi)1293vmovdqu64 %ymm18,256(%rdi)1294vmovdqu64 %ymm19,288(%rdi)1295vmovdqu64 %ymm20,320(%rdi)1296vmovdqu64 %ymm21,352(%rdi)1297vmovdqu64 %ymm22,384(%rdi)1298vmovdqu64 %ymm23,416(%rdi)1299vmovdqu64 %ymm24,448(%rdi)1300vmovdqu64 %ymm25,480(%rdi)13011302.byte 0xf3,0xc31303.cfi_endproc1304.size ossl_extract_multiplier_2x30_win5, .-ossl_extract_multiplier_2x30_win51305.section .rodata1306.align 321307.Lones:1308.quad 1,1,1,11309.Lzeros:1310.quad 0,0,0,01311.section ".note.gnu.property", "a"1312.p2align 31313.long 1f - 0f1314.long 4f - 1f1315.long 513160:1317# "GNU" encoded with .byte, since .asciz isn't supported1318# on Solaris.1319.byte 0x471320.byte 0x4e1321.byte 0x551322.byte 013231:1324.p2align 31325.long 0xc00000021326.long 3f - 2f13272:1328.long 313293:1330.p2align 313314:133213331334