diff options
Diffstat (limited to 'lib/accelerated/x86/macosx/aesni-gcm-x86_64.s')
-rw-r--r-- | lib/accelerated/x86/macosx/aesni-gcm-x86_64.s | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/lib/accelerated/x86/macosx/aesni-gcm-x86_64.s b/lib/accelerated/x86/macosx/aesni-gcm-x86_64.s index 002041cee2..d540930b5b 100644 --- a/lib/accelerated/x86/macosx/aesni-gcm-x86_64.s +++ b/lib/accelerated/x86/macosx/aesni-gcm-x86_64.s @@ -1,4 +1,4 @@ -# Copyright (c) 2011-2013, Andy Polyakov <appro@openssl.org> +# Copyright (c) 2011-2016, Andy Polyakov <appro@openssl.org> # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -354,17 +354,25 @@ L$6x_done: .p2align 5 _aesni_gcm_decrypt: + xorq %r10,%r10 cmpq $0x60,%rdx jb L$gcm_dec_abort leaq (%rsp),%rax + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + vzeroupper vmovdqu (%r8),%xmm1 @@ -426,17 +434,25 @@ L$dec_no_key_aliasing: vzeroupper movq -48(%rax),%r15 + movq -40(%rax),%r14 + movq -32(%rax),%r13 + movq -24(%rax),%r12 + movq -16(%rax),%rbp + movq -8(%rax),%rbx + leaq (%rax),%rsp + L$gcm_dec_abort: movq %r10,%rax .byte 0xf3,0xc3 + .p2align 5 _aesni_ctr32_6x: vmovdqu 0-128(%rcx),%xmm4 @@ -531,17 +547,25 @@ L$handle_ctr32_2: .p2align 5 _aesni_gcm_encrypt: + xorq %r10,%r10 cmpq $288,%rdx jb L$gcm_enc_abort leaq (%rsp),%rax + pushq %rbx + pushq %rbp + pushq %r12 + pushq %r13 + pushq %r14 + pushq %r15 + vzeroupper vmovdqu (%r8),%xmm1 @@ -767,16 +791,24 @@ L$enc_no_key_aliasing: vzeroupper movq -48(%rax),%r15 + movq -40(%rax),%r14 + movq -32(%rax),%r13 + movq -24(%rax),%r12 + movq -16(%rax),%rbp + movq -8(%rax),%rbx + leaq (%rax),%rsp + L$gcm_enc_abort: movq %r10,%rax .byte 0xf3,0xc3 + .p2align 6 L$bswap_mask: .byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 |