summaryrefslogtreecommitdiff
path: root/lib/accelerated/x86/macosx/aesni-gcm-x86_64.s
diff options
context:
space:
mode:
Diffstat (limited to 'lib/accelerated/x86/macosx/aesni-gcm-x86_64.s')
-rw-r--r--lib/accelerated/x86/macosx/aesni-gcm-x86_64.s34
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