Path: blob/main/sys/crypto/openssl/amd64/aesni-mb-x86_64.S
39482 views
/* Do not modify. This file is auto-generated from aesni-mb-x86_64.pl. */1.text2345.globl aesni_multi_cbc_encrypt6.type aesni_multi_cbc_encrypt,@function7.align 328aesni_multi_cbc_encrypt:9.cfi_startproc10cmpl $2,%edx11jb .Lenc_non_avx12movl OPENSSL_ia32cap_P+4(%rip),%ecx13testl $268435456,%ecx14jnz _avx_cbc_enc_shortcut15jmp .Lenc_non_avx16.align 1617.Lenc_non_avx:18movq %rsp,%rax19.cfi_def_cfa_register %rax20pushq %rbx21.cfi_offset %rbx,-1622pushq %rbp23.cfi_offset %rbp,-2424pushq %r1225.cfi_offset %r12,-3226pushq %r1327.cfi_offset %r13,-4028pushq %r1429.cfi_offset %r14,-4830pushq %r1531.cfi_offset %r15,-5632333435363738subq $48,%rsp39andq $-64,%rsp40movq %rax,16(%rsp)41.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x084243.Lenc4x_body:44movdqu (%rsi),%xmm1245leaq 120(%rsi),%rsi46leaq 80(%rdi),%rdi4748.Lenc4x_loop_grande:49movl %edx,24(%rsp)50xorl %edx,%edx5152movl -64(%rdi),%ecx53movq -80(%rdi),%r854cmpl %edx,%ecx55movq -72(%rdi),%r1256cmovgl %ecx,%edx57testl %ecx,%ecx5859movdqu -56(%rdi),%xmm260movl %ecx,32(%rsp)61cmovleq %rsp,%r86263movl -24(%rdi),%ecx64movq -40(%rdi),%r965cmpl %edx,%ecx66movq -32(%rdi),%r1367cmovgl %ecx,%edx68testl %ecx,%ecx6970movdqu -16(%rdi),%xmm371movl %ecx,36(%rsp)72cmovleq %rsp,%r97374movl 16(%rdi),%ecx75movq 0(%rdi),%r1076cmpl %edx,%ecx77movq 8(%rdi),%r1478cmovgl %ecx,%edx79testl %ecx,%ecx8081movdqu 24(%rdi),%xmm482movl %ecx,40(%rsp)83cmovleq %rsp,%r108485movl 56(%rdi),%ecx86movq 40(%rdi),%r1187cmpl %edx,%ecx88movq 48(%rdi),%r1589cmovgl %ecx,%edx90testl %ecx,%ecx9192movdqu 64(%rdi),%xmm593movl %ecx,44(%rsp)94cmovleq %rsp,%r1195testl %edx,%edx96jz .Lenc4x_done9798movups 16-120(%rsi),%xmm199pxor %xmm12,%xmm2100movups 32-120(%rsi),%xmm0101pxor %xmm12,%xmm3102movl 240-120(%rsi),%eax103pxor %xmm12,%xmm4104movdqu (%r8),%xmm6105pxor %xmm12,%xmm5106movdqu (%r9),%xmm7107pxor %xmm6,%xmm2108movdqu (%r10),%xmm8109pxor %xmm7,%xmm3110movdqu (%r11),%xmm9111pxor %xmm8,%xmm4112pxor %xmm9,%xmm5113movdqa 32(%rsp),%xmm10114xorq %rbx,%rbx115jmp .Loop_enc4x116117.align 32118.Loop_enc4x:119addq $16,%rbx120leaq 16(%rsp),%rbp121movl $1,%ecx122subq %rbx,%rbp123124.byte 102,15,56,220,209125prefetcht0 31(%r8,%rbx,1)126prefetcht0 31(%r9,%rbx,1)127.byte 102,15,56,220,217128prefetcht0 31(%r10,%rbx,1)129prefetcht0 31(%r10,%rbx,1)130.byte 102,15,56,220,225131.byte 102,15,56,220,233132movups 48-120(%rsi),%xmm1133cmpl 32(%rsp),%ecx134.byte 102,15,56,220,208135.byte 102,15,56,220,216136.byte 102,15,56,220,224137cmovgeq %rbp,%r8138cmovgq %rbp,%r12139.byte 102,15,56,220,232140movups -56(%rsi),%xmm0141cmpl 36(%rsp),%ecx142.byte 102,15,56,220,209143.byte 102,15,56,220,217144.byte 102,15,56,220,225145cmovgeq %rbp,%r9146cmovgq %rbp,%r13147.byte 102,15,56,220,233148movups -40(%rsi),%xmm1149cmpl 40(%rsp),%ecx150.byte 102,15,56,220,208151.byte 102,15,56,220,216152.byte 102,15,56,220,224153cmovgeq %rbp,%r10154cmovgq %rbp,%r14155.byte 102,15,56,220,232156movups -24(%rsi),%xmm0157cmpl 44(%rsp),%ecx158.byte 102,15,56,220,209159.byte 102,15,56,220,217160.byte 102,15,56,220,225161cmovgeq %rbp,%r11162cmovgq %rbp,%r15163.byte 102,15,56,220,233164movups -8(%rsi),%xmm1165movdqa %xmm10,%xmm11166.byte 102,15,56,220,208167prefetcht0 15(%r12,%rbx,1)168prefetcht0 15(%r13,%rbx,1)169.byte 102,15,56,220,216170prefetcht0 15(%r14,%rbx,1)171prefetcht0 15(%r15,%rbx,1)172.byte 102,15,56,220,224173.byte 102,15,56,220,232174movups 128-120(%rsi),%xmm0175pxor %xmm12,%xmm12176177.byte 102,15,56,220,209178pcmpgtd %xmm12,%xmm11179movdqu -120(%rsi),%xmm12180.byte 102,15,56,220,217181paddd %xmm11,%xmm10182movdqa %xmm10,32(%rsp)183.byte 102,15,56,220,225184.byte 102,15,56,220,233185movups 144-120(%rsi),%xmm1186187cmpl $11,%eax188189.byte 102,15,56,220,208190.byte 102,15,56,220,216191.byte 102,15,56,220,224192.byte 102,15,56,220,232193movups 160-120(%rsi),%xmm0194195jb .Lenc4x_tail196197.byte 102,15,56,220,209198.byte 102,15,56,220,217199.byte 102,15,56,220,225200.byte 102,15,56,220,233201movups 176-120(%rsi),%xmm1202203.byte 102,15,56,220,208204.byte 102,15,56,220,216205.byte 102,15,56,220,224206.byte 102,15,56,220,232207movups 192-120(%rsi),%xmm0208209je .Lenc4x_tail210211.byte 102,15,56,220,209212.byte 102,15,56,220,217213.byte 102,15,56,220,225214.byte 102,15,56,220,233215movups 208-120(%rsi),%xmm1216217.byte 102,15,56,220,208218.byte 102,15,56,220,216219.byte 102,15,56,220,224220.byte 102,15,56,220,232221movups 224-120(%rsi),%xmm0222jmp .Lenc4x_tail223224.align 32225.Lenc4x_tail:226.byte 102,15,56,220,209227.byte 102,15,56,220,217228.byte 102,15,56,220,225229.byte 102,15,56,220,233230movdqu (%r8,%rbx,1),%xmm6231movdqu 16-120(%rsi),%xmm1232233.byte 102,15,56,221,208234movdqu (%r9,%rbx,1),%xmm7235pxor %xmm12,%xmm6236.byte 102,15,56,221,216237movdqu (%r10,%rbx,1),%xmm8238pxor %xmm12,%xmm7239.byte 102,15,56,221,224240movdqu (%r11,%rbx,1),%xmm9241pxor %xmm12,%xmm8242.byte 102,15,56,221,232243movdqu 32-120(%rsi),%xmm0244pxor %xmm12,%xmm9245246movups %xmm2,-16(%r12,%rbx,1)247pxor %xmm6,%xmm2248movups %xmm3,-16(%r13,%rbx,1)249pxor %xmm7,%xmm3250movups %xmm4,-16(%r14,%rbx,1)251pxor %xmm8,%xmm4252movups %xmm5,-16(%r15,%rbx,1)253pxor %xmm9,%xmm5254255decl %edx256jnz .Loop_enc4x257258movq 16(%rsp),%rax259.cfi_def_cfa %rax,8260movl 24(%rsp),%edx261262263264265266267268269270271272leaq 160(%rdi),%rdi273decl %edx274jnz .Lenc4x_loop_grande275276.Lenc4x_done:277movq -48(%rax),%r15278.cfi_restore %r15279movq -40(%rax),%r14280.cfi_restore %r14281movq -32(%rax),%r13282.cfi_restore %r13283movq -24(%rax),%r12284.cfi_restore %r12285movq -16(%rax),%rbp286.cfi_restore %rbp287movq -8(%rax),%rbx288.cfi_restore %rbx289leaq (%rax),%rsp290.cfi_def_cfa_register %rsp291.Lenc4x_epilogue:292.byte 0xf3,0xc3293.cfi_endproc294.size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt295296.globl aesni_multi_cbc_decrypt297.type aesni_multi_cbc_decrypt,@function298.align 32299aesni_multi_cbc_decrypt:300.cfi_startproc301cmpl $2,%edx302jb .Ldec_non_avx303movl OPENSSL_ia32cap_P+4(%rip),%ecx304testl $268435456,%ecx305jnz _avx_cbc_dec_shortcut306jmp .Ldec_non_avx307.align 16308.Ldec_non_avx:309movq %rsp,%rax310.cfi_def_cfa_register %rax311pushq %rbx312.cfi_offset %rbx,-16313pushq %rbp314.cfi_offset %rbp,-24315pushq %r12316.cfi_offset %r12,-32317pushq %r13318.cfi_offset %r13,-40319pushq %r14320.cfi_offset %r14,-48321pushq %r15322.cfi_offset %r15,-56323324325326327328329subq $48,%rsp330andq $-64,%rsp331movq %rax,16(%rsp)332.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08333334.Ldec4x_body:335movdqu (%rsi),%xmm12336leaq 120(%rsi),%rsi337leaq 80(%rdi),%rdi338339.Ldec4x_loop_grande:340movl %edx,24(%rsp)341xorl %edx,%edx342343movl -64(%rdi),%ecx344movq -80(%rdi),%r8345cmpl %edx,%ecx346movq -72(%rdi),%r12347cmovgl %ecx,%edx348testl %ecx,%ecx349350movdqu -56(%rdi),%xmm6351movl %ecx,32(%rsp)352cmovleq %rsp,%r8353354movl -24(%rdi),%ecx355movq -40(%rdi),%r9356cmpl %edx,%ecx357movq -32(%rdi),%r13358cmovgl %ecx,%edx359testl %ecx,%ecx360361movdqu -16(%rdi),%xmm7362movl %ecx,36(%rsp)363cmovleq %rsp,%r9364365movl 16(%rdi),%ecx366movq 0(%rdi),%r10367cmpl %edx,%ecx368movq 8(%rdi),%r14369cmovgl %ecx,%edx370testl %ecx,%ecx371372movdqu 24(%rdi),%xmm8373movl %ecx,40(%rsp)374cmovleq %rsp,%r10375376movl 56(%rdi),%ecx377movq 40(%rdi),%r11378cmpl %edx,%ecx379movq 48(%rdi),%r15380cmovgl %ecx,%edx381testl %ecx,%ecx382383movdqu 64(%rdi),%xmm9384movl %ecx,44(%rsp)385cmovleq %rsp,%r11386testl %edx,%edx387jz .Ldec4x_done388389movups 16-120(%rsi),%xmm1390movups 32-120(%rsi),%xmm0391movl 240-120(%rsi),%eax392movdqu (%r8),%xmm2393movdqu (%r9),%xmm3394pxor %xmm12,%xmm2395movdqu (%r10),%xmm4396pxor %xmm12,%xmm3397movdqu (%r11),%xmm5398pxor %xmm12,%xmm4399pxor %xmm12,%xmm5400movdqa 32(%rsp),%xmm10401xorq %rbx,%rbx402jmp .Loop_dec4x403404.align 32405.Loop_dec4x:406addq $16,%rbx407leaq 16(%rsp),%rbp408movl $1,%ecx409subq %rbx,%rbp410411.byte 102,15,56,222,209412prefetcht0 31(%r8,%rbx,1)413prefetcht0 31(%r9,%rbx,1)414.byte 102,15,56,222,217415prefetcht0 31(%r10,%rbx,1)416prefetcht0 31(%r11,%rbx,1)417.byte 102,15,56,222,225418.byte 102,15,56,222,233419movups 48-120(%rsi),%xmm1420cmpl 32(%rsp),%ecx421.byte 102,15,56,222,208422.byte 102,15,56,222,216423.byte 102,15,56,222,224424cmovgeq %rbp,%r8425cmovgq %rbp,%r12426.byte 102,15,56,222,232427movups -56(%rsi),%xmm0428cmpl 36(%rsp),%ecx429.byte 102,15,56,222,209430.byte 102,15,56,222,217431.byte 102,15,56,222,225432cmovgeq %rbp,%r9433cmovgq %rbp,%r13434.byte 102,15,56,222,233435movups -40(%rsi),%xmm1436cmpl 40(%rsp),%ecx437.byte 102,15,56,222,208438.byte 102,15,56,222,216439.byte 102,15,56,222,224440cmovgeq %rbp,%r10441cmovgq %rbp,%r14442.byte 102,15,56,222,232443movups -24(%rsi),%xmm0444cmpl 44(%rsp),%ecx445.byte 102,15,56,222,209446.byte 102,15,56,222,217447.byte 102,15,56,222,225448cmovgeq %rbp,%r11449cmovgq %rbp,%r15450.byte 102,15,56,222,233451movups -8(%rsi),%xmm1452movdqa %xmm10,%xmm11453.byte 102,15,56,222,208454prefetcht0 15(%r12,%rbx,1)455prefetcht0 15(%r13,%rbx,1)456.byte 102,15,56,222,216457prefetcht0 15(%r14,%rbx,1)458prefetcht0 15(%r15,%rbx,1)459.byte 102,15,56,222,224460.byte 102,15,56,222,232461movups 128-120(%rsi),%xmm0462pxor %xmm12,%xmm12463464.byte 102,15,56,222,209465pcmpgtd %xmm12,%xmm11466movdqu -120(%rsi),%xmm12467.byte 102,15,56,222,217468paddd %xmm11,%xmm10469movdqa %xmm10,32(%rsp)470.byte 102,15,56,222,225471.byte 102,15,56,222,233472movups 144-120(%rsi),%xmm1473474cmpl $11,%eax475476.byte 102,15,56,222,208477.byte 102,15,56,222,216478.byte 102,15,56,222,224479.byte 102,15,56,222,232480movups 160-120(%rsi),%xmm0481482jb .Ldec4x_tail483484.byte 102,15,56,222,209485.byte 102,15,56,222,217486.byte 102,15,56,222,225487.byte 102,15,56,222,233488movups 176-120(%rsi),%xmm1489490.byte 102,15,56,222,208491.byte 102,15,56,222,216492.byte 102,15,56,222,224493.byte 102,15,56,222,232494movups 192-120(%rsi),%xmm0495496je .Ldec4x_tail497498.byte 102,15,56,222,209499.byte 102,15,56,222,217500.byte 102,15,56,222,225501.byte 102,15,56,222,233502movups 208-120(%rsi),%xmm1503504.byte 102,15,56,222,208505.byte 102,15,56,222,216506.byte 102,15,56,222,224507.byte 102,15,56,222,232508movups 224-120(%rsi),%xmm0509jmp .Ldec4x_tail510511.align 32512.Ldec4x_tail:513.byte 102,15,56,222,209514.byte 102,15,56,222,217515.byte 102,15,56,222,225516pxor %xmm0,%xmm6517pxor %xmm0,%xmm7518.byte 102,15,56,222,233519movdqu 16-120(%rsi),%xmm1520pxor %xmm0,%xmm8521pxor %xmm0,%xmm9522movdqu 32-120(%rsi),%xmm0523524.byte 102,15,56,223,214525.byte 102,15,56,223,223526movdqu -16(%r8,%rbx,1),%xmm6527movdqu -16(%r9,%rbx,1),%xmm7528.byte 102,65,15,56,223,224529.byte 102,65,15,56,223,233530movdqu -16(%r10,%rbx,1),%xmm8531movdqu -16(%r11,%rbx,1),%xmm9532533movups %xmm2,-16(%r12,%rbx,1)534movdqu (%r8,%rbx,1),%xmm2535movups %xmm3,-16(%r13,%rbx,1)536movdqu (%r9,%rbx,1),%xmm3537pxor %xmm12,%xmm2538movups %xmm4,-16(%r14,%rbx,1)539movdqu (%r10,%rbx,1),%xmm4540pxor %xmm12,%xmm3541movups %xmm5,-16(%r15,%rbx,1)542movdqu (%r11,%rbx,1),%xmm5543pxor %xmm12,%xmm4544pxor %xmm12,%xmm5545546decl %edx547jnz .Loop_dec4x548549movq 16(%rsp),%rax550.cfi_def_cfa %rax,8551movl 24(%rsp),%edx552553leaq 160(%rdi),%rdi554decl %edx555jnz .Ldec4x_loop_grande556557.Ldec4x_done:558movq -48(%rax),%r15559.cfi_restore %r15560movq -40(%rax),%r14561.cfi_restore %r14562movq -32(%rax),%r13563.cfi_restore %r13564movq -24(%rax),%r12565.cfi_restore %r12566movq -16(%rax),%rbp567.cfi_restore %rbp568movq -8(%rax),%rbx569.cfi_restore %rbx570leaq (%rax),%rsp571.cfi_def_cfa_register %rsp572.Ldec4x_epilogue:573.byte 0xf3,0xc3574.cfi_endproc575.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt576.type aesni_multi_cbc_encrypt_avx,@function577.align 32578aesni_multi_cbc_encrypt_avx:579.cfi_startproc580_avx_cbc_enc_shortcut:581movq %rsp,%rax582.cfi_def_cfa_register %rax583pushq %rbx584.cfi_offset %rbx,-16585pushq %rbp586.cfi_offset %rbp,-24587pushq %r12588.cfi_offset %r12,-32589pushq %r13590.cfi_offset %r13,-40591pushq %r14592.cfi_offset %r14,-48593pushq %r15594.cfi_offset %r15,-56595596597598599600601602603subq $192,%rsp604andq $-128,%rsp605movq %rax,16(%rsp)606.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08607608.Lenc8x_body:609vzeroupper610vmovdqu (%rsi),%xmm15611leaq 120(%rsi),%rsi612leaq 160(%rdi),%rdi613shrl $1,%edx614615.Lenc8x_loop_grande:616617xorl %edx,%edx618619movl -144(%rdi),%ecx620621movq -160(%rdi),%r8622cmpl %edx,%ecx623624movq -152(%rdi),%rbx625cmovgl %ecx,%edx626testl %ecx,%ecx627628vmovdqu -136(%rdi),%xmm2629movl %ecx,32(%rsp)630cmovleq %rsp,%r8631subq %r8,%rbx632movq %rbx,64(%rsp)633634movl -104(%rdi),%ecx635636movq -120(%rdi),%r9637cmpl %edx,%ecx638639movq -112(%rdi),%rbp640cmovgl %ecx,%edx641testl %ecx,%ecx642643vmovdqu -96(%rdi),%xmm3644movl %ecx,36(%rsp)645cmovleq %rsp,%r9646subq %r9,%rbp647movq %rbp,72(%rsp)648649movl -64(%rdi),%ecx650651movq -80(%rdi),%r10652cmpl %edx,%ecx653654movq -72(%rdi),%rbp655cmovgl %ecx,%edx656testl %ecx,%ecx657658vmovdqu -56(%rdi),%xmm4659movl %ecx,40(%rsp)660cmovleq %rsp,%r10661subq %r10,%rbp662movq %rbp,80(%rsp)663664movl -24(%rdi),%ecx665666movq -40(%rdi),%r11667cmpl %edx,%ecx668669movq -32(%rdi),%rbp670cmovgl %ecx,%edx671testl %ecx,%ecx672673vmovdqu -16(%rdi),%xmm5674movl %ecx,44(%rsp)675cmovleq %rsp,%r11676subq %r11,%rbp677movq %rbp,88(%rsp)678679movl 16(%rdi),%ecx680681movq 0(%rdi),%r12682cmpl %edx,%ecx683684movq 8(%rdi),%rbp685cmovgl %ecx,%edx686testl %ecx,%ecx687688vmovdqu 24(%rdi),%xmm6689movl %ecx,48(%rsp)690cmovleq %rsp,%r12691subq %r12,%rbp692movq %rbp,96(%rsp)693694movl 56(%rdi),%ecx695696movq 40(%rdi),%r13697cmpl %edx,%ecx698699movq 48(%rdi),%rbp700cmovgl %ecx,%edx701testl %ecx,%ecx702703vmovdqu 64(%rdi),%xmm7704movl %ecx,52(%rsp)705cmovleq %rsp,%r13706subq %r13,%rbp707movq %rbp,104(%rsp)708709movl 96(%rdi),%ecx710711movq 80(%rdi),%r14712cmpl %edx,%ecx713714movq 88(%rdi),%rbp715cmovgl %ecx,%edx716testl %ecx,%ecx717718vmovdqu 104(%rdi),%xmm8719movl %ecx,56(%rsp)720cmovleq %rsp,%r14721subq %r14,%rbp722movq %rbp,112(%rsp)723724movl 136(%rdi),%ecx725726movq 120(%rdi),%r15727cmpl %edx,%ecx728729movq 128(%rdi),%rbp730cmovgl %ecx,%edx731testl %ecx,%ecx732733vmovdqu 144(%rdi),%xmm9734movl %ecx,60(%rsp)735cmovleq %rsp,%r15736subq %r15,%rbp737movq %rbp,120(%rsp)738testl %edx,%edx739jz .Lenc8x_done740741vmovups 16-120(%rsi),%xmm1742vmovups 32-120(%rsi),%xmm0743movl 240-120(%rsi),%eax744745vpxor (%r8),%xmm15,%xmm10746leaq 128(%rsp),%rbp747vpxor (%r9),%xmm15,%xmm11748vpxor (%r10),%xmm15,%xmm12749vpxor (%r11),%xmm15,%xmm13750vpxor %xmm10,%xmm2,%xmm2751vpxor (%r12),%xmm15,%xmm10752vpxor %xmm11,%xmm3,%xmm3753vpxor (%r13),%xmm15,%xmm11754vpxor %xmm12,%xmm4,%xmm4755vpxor (%r14),%xmm15,%xmm12756vpxor %xmm13,%xmm5,%xmm5757vpxor (%r15),%xmm15,%xmm13758vpxor %xmm10,%xmm6,%xmm6759movl $1,%ecx760vpxor %xmm11,%xmm7,%xmm7761vpxor %xmm12,%xmm8,%xmm8762vpxor %xmm13,%xmm9,%xmm9763jmp .Loop_enc8x764765.align 32766.Loop_enc8x:767vaesenc %xmm1,%xmm2,%xmm2768cmpl 32+0(%rsp),%ecx769vaesenc %xmm1,%xmm3,%xmm3770prefetcht0 31(%r8)771vaesenc %xmm1,%xmm4,%xmm4772vaesenc %xmm1,%xmm5,%xmm5773leaq (%r8,%rbx,1),%rbx774cmovgeq %rsp,%r8775vaesenc %xmm1,%xmm6,%xmm6776cmovgq %rsp,%rbx777vaesenc %xmm1,%xmm7,%xmm7778subq %r8,%rbx779vaesenc %xmm1,%xmm8,%xmm8780vpxor 16(%r8),%xmm15,%xmm10781movq %rbx,64+0(%rsp)782vaesenc %xmm1,%xmm9,%xmm9783vmovups -72(%rsi),%xmm1784leaq 16(%r8,%rbx,1),%r8785vmovdqu %xmm10,0(%rbp)786vaesenc %xmm0,%xmm2,%xmm2787cmpl 32+4(%rsp),%ecx788movq 64+8(%rsp),%rbx789vaesenc %xmm0,%xmm3,%xmm3790prefetcht0 31(%r9)791vaesenc %xmm0,%xmm4,%xmm4792vaesenc %xmm0,%xmm5,%xmm5793leaq (%r9,%rbx,1),%rbx794cmovgeq %rsp,%r9795vaesenc %xmm0,%xmm6,%xmm6796cmovgq %rsp,%rbx797vaesenc %xmm0,%xmm7,%xmm7798subq %r9,%rbx799vaesenc %xmm0,%xmm8,%xmm8800vpxor 16(%r9),%xmm15,%xmm11801movq %rbx,64+8(%rsp)802vaesenc %xmm0,%xmm9,%xmm9803vmovups -56(%rsi),%xmm0804leaq 16(%r9,%rbx,1),%r9805vmovdqu %xmm11,16(%rbp)806vaesenc %xmm1,%xmm2,%xmm2807cmpl 32+8(%rsp),%ecx808movq 64+16(%rsp),%rbx809vaesenc %xmm1,%xmm3,%xmm3810prefetcht0 31(%r10)811vaesenc %xmm1,%xmm4,%xmm4812prefetcht0 15(%r8)813vaesenc %xmm1,%xmm5,%xmm5814leaq (%r10,%rbx,1),%rbx815cmovgeq %rsp,%r10816vaesenc %xmm1,%xmm6,%xmm6817cmovgq %rsp,%rbx818vaesenc %xmm1,%xmm7,%xmm7819subq %r10,%rbx820vaesenc %xmm1,%xmm8,%xmm8821vpxor 16(%r10),%xmm15,%xmm12822movq %rbx,64+16(%rsp)823vaesenc %xmm1,%xmm9,%xmm9824vmovups -40(%rsi),%xmm1825leaq 16(%r10,%rbx,1),%r10826vmovdqu %xmm12,32(%rbp)827vaesenc %xmm0,%xmm2,%xmm2828cmpl 32+12(%rsp),%ecx829movq 64+24(%rsp),%rbx830vaesenc %xmm0,%xmm3,%xmm3831prefetcht0 31(%r11)832vaesenc %xmm0,%xmm4,%xmm4833prefetcht0 15(%r9)834vaesenc %xmm0,%xmm5,%xmm5835leaq (%r11,%rbx,1),%rbx836cmovgeq %rsp,%r11837vaesenc %xmm0,%xmm6,%xmm6838cmovgq %rsp,%rbx839vaesenc %xmm0,%xmm7,%xmm7840subq %r11,%rbx841vaesenc %xmm0,%xmm8,%xmm8842vpxor 16(%r11),%xmm15,%xmm13843movq %rbx,64+24(%rsp)844vaesenc %xmm0,%xmm9,%xmm9845vmovups -24(%rsi),%xmm0846leaq 16(%r11,%rbx,1),%r11847vmovdqu %xmm13,48(%rbp)848vaesenc %xmm1,%xmm2,%xmm2849cmpl 32+16(%rsp),%ecx850movq 64+32(%rsp),%rbx851vaesenc %xmm1,%xmm3,%xmm3852prefetcht0 31(%r12)853vaesenc %xmm1,%xmm4,%xmm4854prefetcht0 15(%r10)855vaesenc %xmm1,%xmm5,%xmm5856leaq (%r12,%rbx,1),%rbx857cmovgeq %rsp,%r12858vaesenc %xmm1,%xmm6,%xmm6859cmovgq %rsp,%rbx860vaesenc %xmm1,%xmm7,%xmm7861subq %r12,%rbx862vaesenc %xmm1,%xmm8,%xmm8863vpxor 16(%r12),%xmm15,%xmm10864movq %rbx,64+32(%rsp)865vaesenc %xmm1,%xmm9,%xmm9866vmovups -8(%rsi),%xmm1867leaq 16(%r12,%rbx,1),%r12868vaesenc %xmm0,%xmm2,%xmm2869cmpl 32+20(%rsp),%ecx870movq 64+40(%rsp),%rbx871vaesenc %xmm0,%xmm3,%xmm3872prefetcht0 31(%r13)873vaesenc %xmm0,%xmm4,%xmm4874prefetcht0 15(%r11)875vaesenc %xmm0,%xmm5,%xmm5876leaq (%rbx,%r13,1),%rbx877cmovgeq %rsp,%r13878vaesenc %xmm0,%xmm6,%xmm6879cmovgq %rsp,%rbx880vaesenc %xmm0,%xmm7,%xmm7881subq %r13,%rbx882vaesenc %xmm0,%xmm8,%xmm8883vpxor 16(%r13),%xmm15,%xmm11884movq %rbx,64+40(%rsp)885vaesenc %xmm0,%xmm9,%xmm9886vmovups 8(%rsi),%xmm0887leaq 16(%r13,%rbx,1),%r13888vaesenc %xmm1,%xmm2,%xmm2889cmpl 32+24(%rsp),%ecx890movq 64+48(%rsp),%rbx891vaesenc %xmm1,%xmm3,%xmm3892prefetcht0 31(%r14)893vaesenc %xmm1,%xmm4,%xmm4894prefetcht0 15(%r12)895vaesenc %xmm1,%xmm5,%xmm5896leaq (%r14,%rbx,1),%rbx897cmovgeq %rsp,%r14898vaesenc %xmm1,%xmm6,%xmm6899cmovgq %rsp,%rbx900vaesenc %xmm1,%xmm7,%xmm7901subq %r14,%rbx902vaesenc %xmm1,%xmm8,%xmm8903vpxor 16(%r14),%xmm15,%xmm12904movq %rbx,64+48(%rsp)905vaesenc %xmm1,%xmm9,%xmm9906vmovups 24(%rsi),%xmm1907leaq 16(%r14,%rbx,1),%r14908vaesenc %xmm0,%xmm2,%xmm2909cmpl 32+28(%rsp),%ecx910movq 64+56(%rsp),%rbx911vaesenc %xmm0,%xmm3,%xmm3912prefetcht0 31(%r15)913vaesenc %xmm0,%xmm4,%xmm4914prefetcht0 15(%r13)915vaesenc %xmm0,%xmm5,%xmm5916leaq (%r15,%rbx,1),%rbx917cmovgeq %rsp,%r15918vaesenc %xmm0,%xmm6,%xmm6919cmovgq %rsp,%rbx920vaesenc %xmm0,%xmm7,%xmm7921subq %r15,%rbx922vaesenc %xmm0,%xmm8,%xmm8923vpxor 16(%r15),%xmm15,%xmm13924movq %rbx,64+56(%rsp)925vaesenc %xmm0,%xmm9,%xmm9926vmovups 40(%rsi),%xmm0927leaq 16(%r15,%rbx,1),%r15928vmovdqu 32(%rsp),%xmm14929prefetcht0 15(%r14)930prefetcht0 15(%r15)931cmpl $11,%eax932jb .Lenc8x_tail933934vaesenc %xmm1,%xmm2,%xmm2935vaesenc %xmm1,%xmm3,%xmm3936vaesenc %xmm1,%xmm4,%xmm4937vaesenc %xmm1,%xmm5,%xmm5938vaesenc %xmm1,%xmm6,%xmm6939vaesenc %xmm1,%xmm7,%xmm7940vaesenc %xmm1,%xmm8,%xmm8941vaesenc %xmm1,%xmm9,%xmm9942vmovups 176-120(%rsi),%xmm1943944vaesenc %xmm0,%xmm2,%xmm2945vaesenc %xmm0,%xmm3,%xmm3946vaesenc %xmm0,%xmm4,%xmm4947vaesenc %xmm0,%xmm5,%xmm5948vaesenc %xmm0,%xmm6,%xmm6949vaesenc %xmm0,%xmm7,%xmm7950vaesenc %xmm0,%xmm8,%xmm8951vaesenc %xmm0,%xmm9,%xmm9952vmovups 192-120(%rsi),%xmm0953je .Lenc8x_tail954955vaesenc %xmm1,%xmm2,%xmm2956vaesenc %xmm1,%xmm3,%xmm3957vaesenc %xmm1,%xmm4,%xmm4958vaesenc %xmm1,%xmm5,%xmm5959vaesenc %xmm1,%xmm6,%xmm6960vaesenc %xmm1,%xmm7,%xmm7961vaesenc %xmm1,%xmm8,%xmm8962vaesenc %xmm1,%xmm9,%xmm9963vmovups 208-120(%rsi),%xmm1964965vaesenc %xmm0,%xmm2,%xmm2966vaesenc %xmm0,%xmm3,%xmm3967vaesenc %xmm0,%xmm4,%xmm4968vaesenc %xmm0,%xmm5,%xmm5969vaesenc %xmm0,%xmm6,%xmm6970vaesenc %xmm0,%xmm7,%xmm7971vaesenc %xmm0,%xmm8,%xmm8972vaesenc %xmm0,%xmm9,%xmm9973vmovups 224-120(%rsi),%xmm0974975.Lenc8x_tail:976vaesenc %xmm1,%xmm2,%xmm2977vpxor %xmm15,%xmm15,%xmm15978vaesenc %xmm1,%xmm3,%xmm3979vaesenc %xmm1,%xmm4,%xmm4980vpcmpgtd %xmm15,%xmm14,%xmm15981vaesenc %xmm1,%xmm5,%xmm5982vaesenc %xmm1,%xmm6,%xmm6983vpaddd %xmm14,%xmm15,%xmm15984vmovdqu 48(%rsp),%xmm14985vaesenc %xmm1,%xmm7,%xmm7986movq 64(%rsp),%rbx987vaesenc %xmm1,%xmm8,%xmm8988vaesenc %xmm1,%xmm9,%xmm9989vmovups 16-120(%rsi),%xmm1990991vaesenclast %xmm0,%xmm2,%xmm2992vmovdqa %xmm15,32(%rsp)993vpxor %xmm15,%xmm15,%xmm15994vaesenclast %xmm0,%xmm3,%xmm3995vaesenclast %xmm0,%xmm4,%xmm4996vpcmpgtd %xmm15,%xmm14,%xmm15997vaesenclast %xmm0,%xmm5,%xmm5998vaesenclast %xmm0,%xmm6,%xmm6999vpaddd %xmm15,%xmm14,%xmm141000vmovdqu -120(%rsi),%xmm151001vaesenclast %xmm0,%xmm7,%xmm71002vaesenclast %xmm0,%xmm8,%xmm81003vmovdqa %xmm14,48(%rsp)1004vaesenclast %xmm0,%xmm9,%xmm91005vmovups 32-120(%rsi),%xmm010061007vmovups %xmm2,-16(%r8)1008subq %rbx,%r81009vpxor 0(%rbp),%xmm2,%xmm21010vmovups %xmm3,-16(%r9)1011subq 72(%rsp),%r91012vpxor 16(%rbp),%xmm3,%xmm31013vmovups %xmm4,-16(%r10)1014subq 80(%rsp),%r101015vpxor 32(%rbp),%xmm4,%xmm41016vmovups %xmm5,-16(%r11)1017subq 88(%rsp),%r111018vpxor 48(%rbp),%xmm5,%xmm51019vmovups %xmm6,-16(%r12)1020subq 96(%rsp),%r121021vpxor %xmm10,%xmm6,%xmm61022vmovups %xmm7,-16(%r13)1023subq 104(%rsp),%r131024vpxor %xmm11,%xmm7,%xmm71025vmovups %xmm8,-16(%r14)1026subq 112(%rsp),%r141027vpxor %xmm12,%xmm8,%xmm81028vmovups %xmm9,-16(%r15)1029subq 120(%rsp),%r151030vpxor %xmm13,%xmm9,%xmm910311032decl %edx1033jnz .Loop_enc8x10341035movq 16(%rsp),%rax1036.cfi_def_cfa %rax,8103710381039104010411042.Lenc8x_done:1043vzeroupper1044movq -48(%rax),%r151045.cfi_restore %r151046movq -40(%rax),%r141047.cfi_restore %r141048movq -32(%rax),%r131049.cfi_restore %r131050movq -24(%rax),%r121051.cfi_restore %r121052movq -16(%rax),%rbp1053.cfi_restore %rbp1054movq -8(%rax),%rbx1055.cfi_restore %rbx1056leaq (%rax),%rsp1057.cfi_def_cfa_register %rsp1058.Lenc8x_epilogue:1059.byte 0xf3,0xc31060.cfi_endproc1061.size aesni_multi_cbc_encrypt_avx,.-aesni_multi_cbc_encrypt_avx10621063.type aesni_multi_cbc_decrypt_avx,@function1064.align 321065aesni_multi_cbc_decrypt_avx:1066.cfi_startproc1067_avx_cbc_dec_shortcut:1068movq %rsp,%rax1069.cfi_def_cfa_register %rax1070pushq %rbx1071.cfi_offset %rbx,-161072pushq %rbp1073.cfi_offset %rbp,-241074pushq %r121075.cfi_offset %r12,-321076pushq %r131077.cfi_offset %r13,-401078pushq %r141079.cfi_offset %r14,-481080pushq %r151081.cfi_offset %r15,-561082108310841085108610871088108910901091subq $256,%rsp1092andq $-256,%rsp1093subq $192,%rsp1094movq %rax,16(%rsp)1095.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x0810961097.Ldec8x_body:1098vzeroupper1099vmovdqu (%rsi),%xmm151100leaq 120(%rsi),%rsi1101leaq 160(%rdi),%rdi1102shrl $1,%edx11031104.Ldec8x_loop_grande:11051106xorl %edx,%edx11071108movl -144(%rdi),%ecx11091110movq -160(%rdi),%r81111cmpl %edx,%ecx11121113movq -152(%rdi),%rbx1114cmovgl %ecx,%edx1115testl %ecx,%ecx11161117vmovdqu -136(%rdi),%xmm21118movl %ecx,32(%rsp)1119cmovleq %rsp,%r81120subq %r8,%rbx1121movq %rbx,64(%rsp)1122vmovdqu %xmm2,192(%rsp)11231124movl -104(%rdi),%ecx11251126movq -120(%rdi),%r91127cmpl %edx,%ecx11281129movq -112(%rdi),%rbp1130cmovgl %ecx,%edx1131testl %ecx,%ecx11321133vmovdqu -96(%rdi),%xmm31134movl %ecx,36(%rsp)1135cmovleq %rsp,%r91136subq %r9,%rbp1137movq %rbp,72(%rsp)1138vmovdqu %xmm3,208(%rsp)11391140movl -64(%rdi),%ecx11411142movq -80(%rdi),%r101143cmpl %edx,%ecx11441145movq -72(%rdi),%rbp1146cmovgl %ecx,%edx1147testl %ecx,%ecx11481149vmovdqu -56(%rdi),%xmm41150movl %ecx,40(%rsp)1151cmovleq %rsp,%r101152subq %r10,%rbp1153movq %rbp,80(%rsp)1154vmovdqu %xmm4,224(%rsp)11551156movl -24(%rdi),%ecx11571158movq -40(%rdi),%r111159cmpl %edx,%ecx11601161movq -32(%rdi),%rbp1162cmovgl %ecx,%edx1163testl %ecx,%ecx11641165vmovdqu -16(%rdi),%xmm51166movl %ecx,44(%rsp)1167cmovleq %rsp,%r111168subq %r11,%rbp1169movq %rbp,88(%rsp)1170vmovdqu %xmm5,240(%rsp)11711172movl 16(%rdi),%ecx11731174movq 0(%rdi),%r121175cmpl %edx,%ecx11761177movq 8(%rdi),%rbp1178cmovgl %ecx,%edx1179testl %ecx,%ecx11801181vmovdqu 24(%rdi),%xmm61182movl %ecx,48(%rsp)1183cmovleq %rsp,%r121184subq %r12,%rbp1185movq %rbp,96(%rsp)1186vmovdqu %xmm6,256(%rsp)11871188movl 56(%rdi),%ecx11891190movq 40(%rdi),%r131191cmpl %edx,%ecx11921193movq 48(%rdi),%rbp1194cmovgl %ecx,%edx1195testl %ecx,%ecx11961197vmovdqu 64(%rdi),%xmm71198movl %ecx,52(%rsp)1199cmovleq %rsp,%r131200subq %r13,%rbp1201movq %rbp,104(%rsp)1202vmovdqu %xmm7,272(%rsp)12031204movl 96(%rdi),%ecx12051206movq 80(%rdi),%r141207cmpl %edx,%ecx12081209movq 88(%rdi),%rbp1210cmovgl %ecx,%edx1211testl %ecx,%ecx12121213vmovdqu 104(%rdi),%xmm81214movl %ecx,56(%rsp)1215cmovleq %rsp,%r141216subq %r14,%rbp1217movq %rbp,112(%rsp)1218vmovdqu %xmm8,288(%rsp)12191220movl 136(%rdi),%ecx12211222movq 120(%rdi),%r151223cmpl %edx,%ecx12241225movq 128(%rdi),%rbp1226cmovgl %ecx,%edx1227testl %ecx,%ecx12281229vmovdqu 144(%rdi),%xmm91230movl %ecx,60(%rsp)1231cmovleq %rsp,%r151232subq %r15,%rbp1233movq %rbp,120(%rsp)1234vmovdqu %xmm9,304(%rsp)1235testl %edx,%edx1236jz .Ldec8x_done12371238vmovups 16-120(%rsi),%xmm11239vmovups 32-120(%rsi),%xmm01240movl 240-120(%rsi),%eax1241leaq 192+128(%rsp),%rbp12421243vmovdqu (%r8),%xmm21244vmovdqu (%r9),%xmm31245vmovdqu (%r10),%xmm41246vmovdqu (%r11),%xmm51247vmovdqu (%r12),%xmm61248vmovdqu (%r13),%xmm71249vmovdqu (%r14),%xmm81250vmovdqu (%r15),%xmm91251vmovdqu %xmm2,0(%rbp)1252vpxor %xmm15,%xmm2,%xmm21253vmovdqu %xmm3,16(%rbp)1254vpxor %xmm15,%xmm3,%xmm31255vmovdqu %xmm4,32(%rbp)1256vpxor %xmm15,%xmm4,%xmm41257vmovdqu %xmm5,48(%rbp)1258vpxor %xmm15,%xmm5,%xmm51259vmovdqu %xmm6,64(%rbp)1260vpxor %xmm15,%xmm6,%xmm61261vmovdqu %xmm7,80(%rbp)1262vpxor %xmm15,%xmm7,%xmm71263vmovdqu %xmm8,96(%rbp)1264vpxor %xmm15,%xmm8,%xmm81265vmovdqu %xmm9,112(%rbp)1266vpxor %xmm15,%xmm9,%xmm91267xorq $0x80,%rbp1268movl $1,%ecx1269jmp .Loop_dec8x12701271.align 321272.Loop_dec8x:1273vaesdec %xmm1,%xmm2,%xmm21274cmpl 32+0(%rsp),%ecx1275vaesdec %xmm1,%xmm3,%xmm31276prefetcht0 31(%r8)1277vaesdec %xmm1,%xmm4,%xmm41278vaesdec %xmm1,%xmm5,%xmm51279leaq (%r8,%rbx,1),%rbx1280cmovgeq %rsp,%r81281vaesdec %xmm1,%xmm6,%xmm61282cmovgq %rsp,%rbx1283vaesdec %xmm1,%xmm7,%xmm71284subq %r8,%rbx1285vaesdec %xmm1,%xmm8,%xmm81286vmovdqu 16(%r8),%xmm101287movq %rbx,64+0(%rsp)1288vaesdec %xmm1,%xmm9,%xmm91289vmovups -72(%rsi),%xmm11290leaq 16(%r8,%rbx,1),%r81291vmovdqu %xmm10,128(%rsp)1292vaesdec %xmm0,%xmm2,%xmm21293cmpl 32+4(%rsp),%ecx1294movq 64+8(%rsp),%rbx1295vaesdec %xmm0,%xmm3,%xmm31296prefetcht0 31(%r9)1297vaesdec %xmm0,%xmm4,%xmm41298vaesdec %xmm0,%xmm5,%xmm51299leaq (%r9,%rbx,1),%rbx1300cmovgeq %rsp,%r91301vaesdec %xmm0,%xmm6,%xmm61302cmovgq %rsp,%rbx1303vaesdec %xmm0,%xmm7,%xmm71304subq %r9,%rbx1305vaesdec %xmm0,%xmm8,%xmm81306vmovdqu 16(%r9),%xmm111307movq %rbx,64+8(%rsp)1308vaesdec %xmm0,%xmm9,%xmm91309vmovups -56(%rsi),%xmm01310leaq 16(%r9,%rbx,1),%r91311vmovdqu %xmm11,144(%rsp)1312vaesdec %xmm1,%xmm2,%xmm21313cmpl 32+8(%rsp),%ecx1314movq 64+16(%rsp),%rbx1315vaesdec %xmm1,%xmm3,%xmm31316prefetcht0 31(%r10)1317vaesdec %xmm1,%xmm4,%xmm41318prefetcht0 15(%r8)1319vaesdec %xmm1,%xmm5,%xmm51320leaq (%r10,%rbx,1),%rbx1321cmovgeq %rsp,%r101322vaesdec %xmm1,%xmm6,%xmm61323cmovgq %rsp,%rbx1324vaesdec %xmm1,%xmm7,%xmm71325subq %r10,%rbx1326vaesdec %xmm1,%xmm8,%xmm81327vmovdqu 16(%r10),%xmm121328movq %rbx,64+16(%rsp)1329vaesdec %xmm1,%xmm9,%xmm91330vmovups -40(%rsi),%xmm11331leaq 16(%r10,%rbx,1),%r101332vmovdqu %xmm12,160(%rsp)1333vaesdec %xmm0,%xmm2,%xmm21334cmpl 32+12(%rsp),%ecx1335movq 64+24(%rsp),%rbx1336vaesdec %xmm0,%xmm3,%xmm31337prefetcht0 31(%r11)1338vaesdec %xmm0,%xmm4,%xmm41339prefetcht0 15(%r9)1340vaesdec %xmm0,%xmm5,%xmm51341leaq (%r11,%rbx,1),%rbx1342cmovgeq %rsp,%r111343vaesdec %xmm0,%xmm6,%xmm61344cmovgq %rsp,%rbx1345vaesdec %xmm0,%xmm7,%xmm71346subq %r11,%rbx1347vaesdec %xmm0,%xmm8,%xmm81348vmovdqu 16(%r11),%xmm131349movq %rbx,64+24(%rsp)1350vaesdec %xmm0,%xmm9,%xmm91351vmovups -24(%rsi),%xmm01352leaq 16(%r11,%rbx,1),%r111353vmovdqu %xmm13,176(%rsp)1354vaesdec %xmm1,%xmm2,%xmm21355cmpl 32+16(%rsp),%ecx1356movq 64+32(%rsp),%rbx1357vaesdec %xmm1,%xmm3,%xmm31358prefetcht0 31(%r12)1359vaesdec %xmm1,%xmm4,%xmm41360prefetcht0 15(%r10)1361vaesdec %xmm1,%xmm5,%xmm51362leaq (%r12,%rbx,1),%rbx1363cmovgeq %rsp,%r121364vaesdec %xmm1,%xmm6,%xmm61365cmovgq %rsp,%rbx1366vaesdec %xmm1,%xmm7,%xmm71367subq %r12,%rbx1368vaesdec %xmm1,%xmm8,%xmm81369vmovdqu 16(%r12),%xmm101370movq %rbx,64+32(%rsp)1371vaesdec %xmm1,%xmm9,%xmm91372vmovups -8(%rsi),%xmm11373leaq 16(%r12,%rbx,1),%r121374vaesdec %xmm0,%xmm2,%xmm21375cmpl 32+20(%rsp),%ecx1376movq 64+40(%rsp),%rbx1377vaesdec %xmm0,%xmm3,%xmm31378prefetcht0 31(%r13)1379vaesdec %xmm0,%xmm4,%xmm41380prefetcht0 15(%r11)1381vaesdec %xmm0,%xmm5,%xmm51382leaq (%rbx,%r13,1),%rbx1383cmovgeq %rsp,%r131384vaesdec %xmm0,%xmm6,%xmm61385cmovgq %rsp,%rbx1386vaesdec %xmm0,%xmm7,%xmm71387subq %r13,%rbx1388vaesdec %xmm0,%xmm8,%xmm81389vmovdqu 16(%r13),%xmm111390movq %rbx,64+40(%rsp)1391vaesdec %xmm0,%xmm9,%xmm91392vmovups 8(%rsi),%xmm01393leaq 16(%r13,%rbx,1),%r131394vaesdec %xmm1,%xmm2,%xmm21395cmpl 32+24(%rsp),%ecx1396movq 64+48(%rsp),%rbx1397vaesdec %xmm1,%xmm3,%xmm31398prefetcht0 31(%r14)1399vaesdec %xmm1,%xmm4,%xmm41400prefetcht0 15(%r12)1401vaesdec %xmm1,%xmm5,%xmm51402leaq (%r14,%rbx,1),%rbx1403cmovgeq %rsp,%r141404vaesdec %xmm1,%xmm6,%xmm61405cmovgq %rsp,%rbx1406vaesdec %xmm1,%xmm7,%xmm71407subq %r14,%rbx1408vaesdec %xmm1,%xmm8,%xmm81409vmovdqu 16(%r14),%xmm121410movq %rbx,64+48(%rsp)1411vaesdec %xmm1,%xmm9,%xmm91412vmovups 24(%rsi),%xmm11413leaq 16(%r14,%rbx,1),%r141414vaesdec %xmm0,%xmm2,%xmm21415cmpl 32+28(%rsp),%ecx1416movq 64+56(%rsp),%rbx1417vaesdec %xmm0,%xmm3,%xmm31418prefetcht0 31(%r15)1419vaesdec %xmm0,%xmm4,%xmm41420prefetcht0 15(%r13)1421vaesdec %xmm0,%xmm5,%xmm51422leaq (%r15,%rbx,1),%rbx1423cmovgeq %rsp,%r151424vaesdec %xmm0,%xmm6,%xmm61425cmovgq %rsp,%rbx1426vaesdec %xmm0,%xmm7,%xmm71427subq %r15,%rbx1428vaesdec %xmm0,%xmm8,%xmm81429vmovdqu 16(%r15),%xmm131430movq %rbx,64+56(%rsp)1431vaesdec %xmm0,%xmm9,%xmm91432vmovups 40(%rsi),%xmm01433leaq 16(%r15,%rbx,1),%r151434vmovdqu 32(%rsp),%xmm141435prefetcht0 15(%r14)1436prefetcht0 15(%r15)1437cmpl $11,%eax1438jb .Ldec8x_tail14391440vaesdec %xmm1,%xmm2,%xmm21441vaesdec %xmm1,%xmm3,%xmm31442vaesdec %xmm1,%xmm4,%xmm41443vaesdec %xmm1,%xmm5,%xmm51444vaesdec %xmm1,%xmm6,%xmm61445vaesdec %xmm1,%xmm7,%xmm71446vaesdec %xmm1,%xmm8,%xmm81447vaesdec %xmm1,%xmm9,%xmm91448vmovups 176-120(%rsi),%xmm114491450vaesdec %xmm0,%xmm2,%xmm21451vaesdec %xmm0,%xmm3,%xmm31452vaesdec %xmm0,%xmm4,%xmm41453vaesdec %xmm0,%xmm5,%xmm51454vaesdec %xmm0,%xmm6,%xmm61455vaesdec %xmm0,%xmm7,%xmm71456vaesdec %xmm0,%xmm8,%xmm81457vaesdec %xmm0,%xmm9,%xmm91458vmovups 192-120(%rsi),%xmm01459je .Ldec8x_tail14601461vaesdec %xmm1,%xmm2,%xmm21462vaesdec %xmm1,%xmm3,%xmm31463vaesdec %xmm1,%xmm4,%xmm41464vaesdec %xmm1,%xmm5,%xmm51465vaesdec %xmm1,%xmm6,%xmm61466vaesdec %xmm1,%xmm7,%xmm71467vaesdec %xmm1,%xmm8,%xmm81468vaesdec %xmm1,%xmm9,%xmm91469vmovups 208-120(%rsi),%xmm114701471vaesdec %xmm0,%xmm2,%xmm21472vaesdec %xmm0,%xmm3,%xmm31473vaesdec %xmm0,%xmm4,%xmm41474vaesdec %xmm0,%xmm5,%xmm51475vaesdec %xmm0,%xmm6,%xmm61476vaesdec %xmm0,%xmm7,%xmm71477vaesdec %xmm0,%xmm8,%xmm81478vaesdec %xmm0,%xmm9,%xmm91479vmovups 224-120(%rsi),%xmm014801481.Ldec8x_tail:1482vaesdec %xmm1,%xmm2,%xmm21483vpxor %xmm15,%xmm15,%xmm151484vaesdec %xmm1,%xmm3,%xmm31485vaesdec %xmm1,%xmm4,%xmm41486vpcmpgtd %xmm15,%xmm14,%xmm151487vaesdec %xmm1,%xmm5,%xmm51488vaesdec %xmm1,%xmm6,%xmm61489vpaddd %xmm14,%xmm15,%xmm151490vmovdqu 48(%rsp),%xmm141491vaesdec %xmm1,%xmm7,%xmm71492movq 64(%rsp),%rbx1493vaesdec %xmm1,%xmm8,%xmm81494vaesdec %xmm1,%xmm9,%xmm91495vmovups 16-120(%rsi),%xmm114961497vaesdeclast %xmm0,%xmm2,%xmm21498vmovdqa %xmm15,32(%rsp)1499vpxor %xmm15,%xmm15,%xmm151500vaesdeclast %xmm0,%xmm3,%xmm31501vpxor 0(%rbp),%xmm2,%xmm21502vaesdeclast %xmm0,%xmm4,%xmm41503vpxor 16(%rbp),%xmm3,%xmm31504vpcmpgtd %xmm15,%xmm14,%xmm151505vaesdeclast %xmm0,%xmm5,%xmm51506vpxor 32(%rbp),%xmm4,%xmm41507vaesdeclast %xmm0,%xmm6,%xmm61508vpxor 48(%rbp),%xmm5,%xmm51509vpaddd %xmm15,%xmm14,%xmm141510vmovdqu -120(%rsi),%xmm151511vaesdeclast %xmm0,%xmm7,%xmm71512vpxor 64(%rbp),%xmm6,%xmm61513vaesdeclast %xmm0,%xmm8,%xmm81514vpxor 80(%rbp),%xmm7,%xmm71515vmovdqa %xmm14,48(%rsp)1516vaesdeclast %xmm0,%xmm9,%xmm91517vpxor 96(%rbp),%xmm8,%xmm81518vmovups 32-120(%rsi),%xmm015191520vmovups %xmm2,-16(%r8)1521subq %rbx,%r81522vmovdqu 128+0(%rsp),%xmm21523vpxor 112(%rbp),%xmm9,%xmm91524vmovups %xmm3,-16(%r9)1525subq 72(%rsp),%r91526vmovdqu %xmm2,0(%rbp)1527vpxor %xmm15,%xmm2,%xmm21528vmovdqu 128+16(%rsp),%xmm31529vmovups %xmm4,-16(%r10)1530subq 80(%rsp),%r101531vmovdqu %xmm3,16(%rbp)1532vpxor %xmm15,%xmm3,%xmm31533vmovdqu 128+32(%rsp),%xmm41534vmovups %xmm5,-16(%r11)1535subq 88(%rsp),%r111536vmovdqu %xmm4,32(%rbp)1537vpxor %xmm15,%xmm4,%xmm41538vmovdqu 128+48(%rsp),%xmm51539vmovups %xmm6,-16(%r12)1540subq 96(%rsp),%r121541vmovdqu %xmm5,48(%rbp)1542vpxor %xmm15,%xmm5,%xmm51543vmovdqu %xmm10,64(%rbp)1544vpxor %xmm10,%xmm15,%xmm61545vmovups %xmm7,-16(%r13)1546subq 104(%rsp),%r131547vmovdqu %xmm11,80(%rbp)1548vpxor %xmm11,%xmm15,%xmm71549vmovups %xmm8,-16(%r14)1550subq 112(%rsp),%r141551vmovdqu %xmm12,96(%rbp)1552vpxor %xmm12,%xmm15,%xmm81553vmovups %xmm9,-16(%r15)1554subq 120(%rsp),%r151555vmovdqu %xmm13,112(%rbp)1556vpxor %xmm13,%xmm15,%xmm915571558xorq $128,%rbp1559decl %edx1560jnz .Loop_dec8x15611562movq 16(%rsp),%rax1563.cfi_def_cfa %rax,8156415651566156715681569.Ldec8x_done:1570vzeroupper1571movq -48(%rax),%r151572.cfi_restore %r151573movq -40(%rax),%r141574.cfi_restore %r141575movq -32(%rax),%r131576.cfi_restore %r131577movq -24(%rax),%r121578.cfi_restore %r121579movq -16(%rax),%rbp1580.cfi_restore %rbp1581movq -8(%rax),%rbx1582.cfi_restore %rbx1583leaq (%rax),%rsp1584.cfi_def_cfa_register %rsp1585.Ldec8x_epilogue:1586.byte 0xf3,0xc31587.cfi_endproc1588.size aesni_multi_cbc_decrypt_avx,.-aesni_multi_cbc_decrypt_avx1589.section ".note.gnu.property", "a"1590.p2align 31591.long 1f - 0f1592.long 4f - 1f1593.long 515940:1595# "GNU" encoded with .byte, since .asciz isn't supported1596# on Solaris.1597.byte 0x471598.byte 0x4e1599.byte 0x551600.byte 016011:1602.p2align 31603.long 0xc00000021604.long 3f - 2f16052:1606.long 316073:1608.p2align 316094:161016111612