diff options
Diffstat (limited to 'deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s')
-rw-r--r-- | deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s index 28cf0768ca..3aee22c3bc 100644 --- a/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s +++ b/deps/openssl/config/archs/darwin64-x86_64-cc/asm/crypto/aes/aesni-sha256-x86_64.s @@ -5,6 +5,7 @@ .p2align 4 _aesni_cbc_sha256_enc: + leaq _OPENSSL_ia32cap_P(%rip),%r11 movl $1,%eax cmpq $0,%rdi @@ -32,6 +33,7 @@ L$probe: .byte 0xf3,0xc3 + .p2align 6 K256: @@ -2528,7 +2530,15 @@ L$oop_avx2: vmovdqa %ymm4,0(%rsp) xorl %r14d,%r14d vmovdqa %ymm5,32(%rsp) + + movq 120(%rsp),%rsi + leaq -64(%rsp),%rsp + + + + movq %rsi,-8(%rsp) + movl %ebx,%esi vmovdqa %ymm6,0(%rsp) xorl %ecx,%esi @@ -2542,6 +2552,12 @@ L$avx2_00_47: vmovdqu (%r13),%xmm9 vpinsrq $0,%r13,%xmm15,%xmm15 leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + vpalignr $4,%ymm0,%ymm1,%ymm4 addl 0+128(%rsp),%r11d andl %r8d,%r12d @@ -2816,6 +2832,12 @@ L$avx2_00_47: movl %r9d,%r12d vmovdqa %ymm6,32(%rsp) leaq -64(%rsp),%rsp + + + pushq 64-8(%rsp) + + leaq 8(%rsp),%rsp + vpalignr $4,%ymm2,%ymm3,%ymm4 addl 0+128(%rsp),%r11d andl %r8d,%r12d @@ -4029,10 +4051,12 @@ L$ower_avx2: jbe L$oop_avx2 leaq (%rsp),%rbp + + + L$done_avx2: - leaq (%rbp),%rsp - movq 64+32(%rsp),%r8 - movq 120(%rsp),%rsi + movq 64+32(%rbp),%r8 + movq 64+56(%rbp),%rsi vmovdqu %xmm8,(%r8) vzeroall @@ -4057,6 +4081,7 @@ L$epilogue_avx2: .p2align 5 aesni_cbc_sha256_enc_shaext: + movq 8(%rsp),%r10 leaq K256+128(%rip),%rax movdqu (%r9),%xmm1 |