[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[SCM] GNU gnutls branch, master, updated. gnutls_3_0_0-30-g449101d
From: |
Nikos Mavrogiannopoulos |
Subject: |
[SCM] GNU gnutls branch, master, updated. gnutls_3_0_0-30-g449101d |
Date: |
Mon, 08 Aug 2011 18:22:42 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU gnutls".
http://git.savannah.gnu.org/cgit/gnutls.git/commit/?id=449101db1991ab5e7fdbfcb20fa8ff9e78d7f66e
The branch, master has been updated
via 449101db1991ab5e7fdbfcb20fa8ff9e78d7f66e (commit)
via c04eec439adc54a476ecf5d3d56878b929aa6f9e (commit)
via 3c642c598327c3538fe5f902f65fab8c375f54d9 (commit)
via 892498cd2c25e3cc7b20d6723affaf9734bc0b60 (commit)
from 99c30761cd072643d7b589eb14d6c1cfd00c696f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 449101db1991ab5e7fdbfcb20fa8ff9e78d7f66e
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Mon Aug 8 20:21:47 2011 +0200
Prevent from loading twice the same module.
commit c04eec439adc54a476ecf5d3d56878b929aa6f9e
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Mon Aug 8 20:02:47 2011 +0200
Added note.GNU-stack to prevent marking the library as using an executable
stack. Reported by Andreas Metzler.
commit 3c642c598327c3538fe5f902f65fab8c375f54d9
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Mon Aug 8 19:50:03 2011 +0200
bumped version
commit 892498cd2c25e3cc7b20d6723affaf9734bc0b60
Author: Nikos Mavrogiannopoulos <address@hidden>
Date: Mon Aug 8 14:54:08 2011 +0200
Included appro's updates to AES-NI.
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 2 +-
lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s | 4 +
lib/accelerated/intel/asm/appro-aes-x86-64.s | 373 +++++++++++-----------
lib/accelerated/intel/asm/appro-aes-x86.s | 300 +++++++++---------
lib/pkcs11.c | 21 +-
5 files changed, 370 insertions(+), 330 deletions(-)
diff --git a/configure.ac b/configure.ac
index 0904275..bf8a614 100644
--- a/configure.ac
+++ b/configure.ac
@@ -21,7 +21,7 @@ dnl Process this file with autoconf to produce a configure
script.
# USA
AC_PREREQ(2.61)
-AC_INIT([GnuTLS], [3.0.0], address@hidden)
+AC_INIT([GnuTLS], [3.0.1], address@hidden)
AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
diff --git a/lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s
b/lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s
index 009ec3d..7e3c407 100644
--- a/lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s
+++ b/lib/accelerated/intel/asm/appro-aes-gcm-x86-64.s
@@ -1062,3 +1062,7 @@ gcm_ghash_clmul:
.byte
71,72,65,83,72,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
+
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
diff --git a/lib/accelerated/intel/asm/appro-aes-x86-64.s
b/lib/accelerated/intel/asm/appro-aes-x86-64.s
index 98204d1..675e112 100644
--- a/lib/accelerated/intel/asm/appro-aes-x86-64.s
+++ b/lib/accelerated/intel/asm/appro-aes-x86-64.s
@@ -42,14 +42,14 @@
aesni_encrypt:
movups (%rdi),%xmm2
movl 240(%rdx),%eax
- movaps (%rdx),%xmm0
- movaps 16(%rdx),%xmm1
+ movups (%rdx),%xmm0
+ movups 16(%rdx),%xmm1
leaq 32(%rdx),%rdx
xorps %xmm0,%xmm2
.Loop_enc1_1:
.byte 102,15,56,220,209
decl %eax
- movaps (%rdx),%xmm1
+ movups (%rdx),%xmm1
leaq 16(%rdx),%rdx
jnz .Loop_enc1_1
.byte 102,15,56,221,209
@@ -63,14 +63,14 @@ aesni_encrypt:
aesni_decrypt:
movups (%rdi),%xmm2
movl 240(%rdx),%eax
- movaps (%rdx),%xmm0
- movaps 16(%rdx),%xmm1
+ movups (%rdx),%xmm0
+ movups 16(%rdx),%xmm1
leaq 32(%rdx),%rdx
xorps %xmm0,%xmm2
.Loop_dec1_2:
.byte 102,15,56,222,209
decl %eax
- movaps (%rdx),%xmm1
+ movups (%rdx),%xmm1
leaq 16(%rdx),%rdx
jnz .Loop_dec1_2
.byte 102,15,56,223,209
@@ -80,26 +80,26 @@ aesni_decrypt:
.type _aesni_encrypt3,@function
.align 16
_aesni_encrypt3:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
xorps %xmm0,%xmm4
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.Lenc_loop3:
.byte 102,15,56,220,209
.byte 102,15,56,220,217
decl %eax
.byte 102,15,56,220,225
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leaq 32(%rcx),%rcx
.byte 102,15,56,220,224
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lenc_loop3
.byte 102,15,56,220,209
@@ -113,26 +113,26 @@ _aesni_encrypt3:
.type _aesni_decrypt3,@function
.align 16
_aesni_decrypt3:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
xorps %xmm0,%xmm4
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.Ldec_loop3:
.byte 102,15,56,222,209
.byte 102,15,56,222,217
decl %eax
.byte 102,15,56,222,225
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leaq 32(%rcx),%rcx
.byte 102,15,56,222,224
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Ldec_loop3
.byte 102,15,56,222,209
@@ -146,15 +146,15 @@ _aesni_decrypt3:
.type _aesni_encrypt4,@function
.align 16
_aesni_encrypt4:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
xorps %xmm0,%xmm4
xorps %xmm0,%xmm5
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.Lenc_loop4:
.byte 102,15,56,220,209
@@ -162,13 +162,13 @@ _aesni_encrypt4:
decl %eax
.byte 102,15,56,220,225
.byte 102,15,56,220,233
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leaq 32(%rcx),%rcx
.byte 102,15,56,220,224
.byte 102,15,56,220,232
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lenc_loop4
.byte 102,15,56,220,209
@@ -184,15 +184,15 @@ _aesni_encrypt4:
.type _aesni_decrypt4,@function
.align 16
_aesni_decrypt4:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
xorps %xmm0,%xmm4
xorps %xmm0,%xmm5
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.Ldec_loop4:
.byte 102,15,56,222,209
@@ -200,13 +200,13 @@ _aesni_decrypt4:
decl %eax
.byte 102,15,56,222,225
.byte 102,15,56,222,233
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leaq 32(%rcx),%rcx
.byte 102,15,56,222,224
.byte 102,15,56,222,232
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Ldec_loop4
.byte 102,15,56,222,209
@@ -222,9 +222,9 @@ _aesni_decrypt4:
.type _aesni_encrypt6,@function
.align 16
_aesni_encrypt6:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
@@ -238,7 +238,7 @@ _aesni_encrypt6:
pxor %xmm0,%xmm7
decl %eax
.byte 102,15,56,220,241
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.byte 102,15,56,220,249
jmp .Lenc_loop6_enter
.align 16
@@ -251,7 +251,7 @@ _aesni_encrypt6:
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.Lenc_loop6_enter:
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leaq 32(%rcx),%rcx
@@ -259,7 +259,7 @@ _aesni_encrypt6:
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lenc_loop6
.byte 102,15,56,220,209
@@ -279,9 +279,9 @@ _aesni_encrypt6:
.type _aesni_decrypt6,@function
.align 16
_aesni_decrypt6:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
@@ -295,7 +295,7 @@ _aesni_decrypt6:
pxor %xmm0,%xmm7
decl %eax
.byte 102,15,56,222,241
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.byte 102,15,56,222,249
jmp .Ldec_loop6_enter
.align 16
@@ -308,7 +308,7 @@ _aesni_decrypt6:
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.Ldec_loop6_enter:
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leaq 32(%rcx),%rcx
@@ -316,7 +316,7 @@ _aesni_decrypt6:
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Ldec_loop6
.byte 102,15,56,222,209
@@ -336,9 +336,9 @@ _aesni_decrypt6:
.type _aesni_encrypt8,@function
.align 16
_aesni_encrypt8:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
@@ -355,10 +355,10 @@ _aesni_encrypt8:
pxor %xmm0,%xmm8
.byte 102,15,56,220,249
pxor %xmm0,%xmm9
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
jmp .Lenc_loop8_enter
.align 16
.Lenc_loop8:
@@ -371,7 +371,7 @@ _aesni_encrypt8:
.byte 102,15,56,220,249
.byte 102,68,15,56,220,193
.byte 102,68,15,56,220,201
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.Lenc_loop8_enter:
.byte 102,15,56,220,208
.byte 102,15,56,220,216
@@ -382,7 +382,7 @@ _aesni_encrypt8:
.byte 102,15,56,220,248
.byte 102,68,15,56,220,192
.byte 102,68,15,56,220,200
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lenc_loop8
.byte 102,15,56,220,209
@@ -406,9 +406,9 @@ _aesni_encrypt8:
.type _aesni_decrypt8,@function
.align 16
_aesni_decrypt8:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
xorps %xmm0,%xmm3
@@ -425,10 +425,10 @@ _aesni_decrypt8:
pxor %xmm0,%xmm8
.byte 102,15,56,222,249
pxor %xmm0,%xmm9
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
jmp .Ldec_loop8_enter
.align 16
.Ldec_loop8:
@@ -441,7 +441,7 @@ _aesni_decrypt8:
.byte 102,15,56,222,249
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.Ldec_loop8_enter:
.byte 102,15,56,222,208
.byte 102,15,56,222,216
@@ -452,7 +452,7 @@ _aesni_decrypt8:
.byte 102,15,56,222,248
.byte 102,68,15,56,222,192
.byte 102,68,15,56,222,200
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Ldec_loop8
.byte 102,15,56,222,209
@@ -481,7 +481,7 @@ aesni_ecb_encrypt:
jz .Lecb_ret
movl 240(%rcx),%eax
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
movq %rcx,%r11
movl %eax,%r10d
testl %r8d,%r8d
@@ -572,14 +572,14 @@ aesni_ecb_encrypt:
jmp .Lecb_ret
.align 16
.Lecb_enc_one:
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_enc1_3:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_3
.byte 102,15,56,221,209
@@ -670,7 +670,7 @@ aesni_ecb_encrypt:
call _aesni_decrypt8
- movaps (%r11),%xmm0
+ movups (%r11),%xmm0
subq $128,%rdx
jnc .Lecb_dec_loop8
@@ -705,7 +705,7 @@ aesni_ecb_encrypt:
movups 80(%rdi),%xmm7
je .Lecb_dec_six
movups 96(%rdi),%xmm8
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
call _aesni_decrypt8
movups %xmm2,(%rsi)
movups %xmm3,16(%rsi)
@@ -717,14 +717,14 @@ aesni_ecb_encrypt:
jmp .Lecb_ret
.align 16
.Lecb_dec_one:
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_dec1_4:
.byte 102,15,56,222,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_dec1_4
.byte 102,15,56,223,209
@@ -779,54 +779,54 @@ aesni_ecb_encrypt:
.type aesni_ccm64_encrypt_blocks,@function
.align 16
aesni_ccm64_encrypt_blocks:
+ movl 240(%rcx),%eax
movdqu (%r8),%xmm9
- movdqu (%r9),%xmm3
- movdqa .Lincrement64(%rip),%xmm8
- movdqa .Lbswap_mask(%rip),%xmm9
-.byte 102,69,15,56,0,201
+ movdqa .Lincrement64(%rip),%xmm6
+ movdqa .Lbswap_mask(%rip),%xmm7
- movl 240(%rcx),%eax
- movq %rcx,%r11
- movl %eax,%r10d
+ shrl $1,%eax
+ leaq 0(%rcx),%r11
+ movdqu (%r9),%xmm3
movdqa %xmm9,%xmm2
-
+ movl %eax,%r10d
+ jmp .Lccm64_enc_outer
+.align 16
.Lccm64_enc_outer:
- movups (%rdi),%xmm8
-.byte 102,65,15,56,0,209
- movq %r11,%rcx
+ movups (%r11),%xmm0
movl %r10d,%eax
+ movups (%rdi),%xmm8
- movaps (%rcx),%xmm0
- shrl $1,%eax
- movaps 16(%rcx),%xmm1
- xorps %xmm0,%xmm8
- leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
- xorps %xmm3,%xmm8
- movaps (%rcx),%xmm0
+ movups 16(%r11),%xmm1
+ xorps %xmm8,%xmm0
+ leaq 32(%r11),%rcx
+ xorps %xmm0,%xmm3
+ movups (%rcx),%xmm0
.Lccm64_enc2_loop:
.byte 102,15,56,220,209
decl %eax
.byte 102,15,56,220,217
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
leaq 32(%rcx),%rcx
.byte 102,15,56,220,216
- movaps 0(%rcx),%xmm0
+ movups 0(%rcx),%xmm0
jnz .Lccm64_enc2_loop
+.byte 102,68,15,56,0,207
.byte 102,15,56,220,209
.byte 102,15,56,220,217
+ paddq %xmm6,%xmm9
.byte 102,15,56,221,208
.byte 102,15,56,221,216
- paddq %xmm8,%xmm9
decq %rdx
leaq 16(%rdi),%rdi
xorps %xmm2,%xmm8
movdqa %xmm9,%xmm2
movups %xmm8,(%rsi)
leaq 16(%rsi),%rsi
+.byte 102,68,15,56,0,207
jnz .Lccm64_enc_outer
movups %xmm3,(%r9)
@@ -836,35 +836,36 @@ aesni_ccm64_encrypt_blocks:
.type aesni_ccm64_decrypt_blocks,@function
.align 16
aesni_ccm64_decrypt_blocks:
- movdqu (%r8),%xmm9
+ movl 240(%rcx),%eax
+ movups (%r8),%xmm9
movdqu (%r9),%xmm3
- movdqa .Lincrement64(%rip),%xmm8
- movdqa .Lbswap_mask(%rip),%xmm9
+ movdqa .Lincrement64(%rip),%xmm6
+ movdqa .Lbswap_mask(%rip),%xmm7
- movl 240(%rcx),%eax
- movdqa %xmm9,%xmm2
-.byte 102,69,15,56,0,201
+ movaps %xmm9,%xmm2
movl %eax,%r10d
movq %rcx,%r11
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+.byte 102,68,15,56,0,207
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_enc1_5:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_5
.byte 102,15,56,221,209
-.Lccm64_dec_outer:
- paddq %xmm8,%xmm9
movups (%rdi),%xmm8
+ paddq %xmm6,%xmm9
+.byte 102,68,15,56,0,207
+ leaq 16(%rdi),%rdi
+ jmp .Lccm64_dec_outer
+.align 16
+.Lccm64_dec_outer:
xorps %xmm2,%xmm8
movdqa %xmm9,%xmm2
- leaq 16(%rdi),%rdi
-.byte 102,65,15,56,0,209
- movq %r11,%rcx
movl %r10d,%eax
movups %xmm8,(%rsi)
leaq 16(%rsi),%rsi
@@ -872,41 +873,48 @@ aesni_ccm64_decrypt_blocks:
subq $1,%rdx
jz .Lccm64_dec_break
- movaps (%rcx),%xmm0
+ movups (%r11),%xmm0
shrl $1,%eax
- movaps 16(%rcx),%xmm1
+ movups 16(%r11),%xmm1
xorps %xmm0,%xmm8
- leaq 32(%rcx),%rcx
+ leaq 32(%r11),%rcx
xorps %xmm0,%xmm2
xorps %xmm8,%xmm3
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.Lccm64_dec2_loop:
.byte 102,15,56,220,209
decl %eax
.byte 102,15,56,220,217
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
leaq 32(%rcx),%rcx
.byte 102,15,56,220,216
- movaps 0(%rcx),%xmm0
+ movups 0(%rcx),%xmm0
jnz .Lccm64_dec2_loop
+ movups (%rdi),%xmm8
+ paddq %xmm6,%xmm9
.byte 102,15,56,220,209
.byte 102,15,56,220,217
+.byte 102,68,15,56,0,207
+ leaq 16(%rdi),%rdi
.byte 102,15,56,221,208
+.byte 102,15,56,221,216
jmp .Lccm64_dec_outer
.align 16
.Lccm64_dec_break:
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
- leaq 32(%rcx),%rcx
- xorps %xmm0,%xmm3
+
+ movups (%r11),%xmm0
+ movups 16(%r11),%xmm1
+ xorps %xmm0,%xmm8
+ leaq 32(%r11),%r11
+ xorps %xmm8,%xmm3
.Loop_enc1_6:
.byte 102,15,56,220,217
decl %eax
- movaps (%rcx),%xmm1
- leaq 16(%rcx),%rcx
+ movups (%r11),%xmm1
+ leaq 16(%r11),%r11
jnz .Loop_enc1_6
.byte 102,15,56,221,217
movups %xmm3,(%r9)
@@ -960,10 +968,10 @@ aesni_ctr32_encrypt_blocks:
.Lctr32_loop6:
pshufd $192,%xmm13,%xmm5
por %xmm14,%xmm2
- movaps (%r11),%xmm0
+ movups (%r11),%xmm0
pshufd $128,%xmm13,%xmm6
por %xmm14,%xmm3
- movaps 16(%r11),%xmm1
+ movups 16(%r11),%xmm1
pshufd $64,%xmm13,%xmm7
por %xmm14,%xmm4
por %xmm14,%xmm5
@@ -986,7 +994,7 @@ aesni_ctr32_encrypt_blocks:
pxor %xmm0,%xmm6
.byte 102,15,56,220,233
pxor %xmm0,%xmm7
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
decl %eax
.byte 102,15,56,220,241
.byte 102,15,56,220,249
@@ -1001,7 +1009,7 @@ aesni_ctr32_encrypt_blocks:
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.Lctr32_enc_loop6_enter:
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leaq 32(%rcx),%rcx
@@ -1009,7 +1017,7 @@ aesni_ctr32_encrypt_blocks:
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lctr32_enc_loop6
.byte 102,15,56,220,209
@@ -1109,14 +1117,14 @@ aesni_ctr32_encrypt_blocks:
movups (%rdi),%xmm8
movl 240(%rcx),%eax
.Lctr32_one:
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_enc1_7:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_7
.byte 102,15,56,221,209
@@ -1168,14 +1176,14 @@ aesni_xts_encrypt:
movups (%r9),%xmm15
movl 240(%r8),%eax
movl 240(%rcx),%r10d
- movaps (%r8),%xmm0
- movaps 16(%r8),%xmm1
+ movups (%r8),%xmm0
+ movups 16(%r8),%xmm1
leaq 32(%r8),%r8
xorps %xmm0,%xmm15
.Loop_enc1_8:
.byte 102,68,15,56,220,249
decl %eax
- movaps (%r8),%xmm1
+ movups (%r8),%xmm1
leaq 16(%r8),%r8
jnz .Loop_enc1_8
.byte 102,68,15,56,221,249
@@ -1242,13 +1250,13 @@ aesni_xts_encrypt:
movdqu 80(%rdi),%xmm7
leaq 96(%rdi),%rdi
pxor %xmm13,%xmm5
- movaps (%r11),%xmm0
+ movups (%r11),%xmm0
pxor %xmm14,%xmm6
pxor %xmm15,%xmm7
- movaps 16(%r11),%xmm1
+ movups 16(%r11),%xmm1
pxor %xmm0,%xmm2
pxor %xmm0,%xmm3
movdqa %xmm10,0(%rsp)
@@ -1264,7 +1272,7 @@ aesni_xts_encrypt:
movdqa %xmm13,48(%rsp)
.byte 102,15,56,220,233
pxor %xmm0,%xmm7
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
decl %eax
movdqa %xmm14,64(%rsp)
.byte 102,15,56,220,241
@@ -1284,7 +1292,7 @@ aesni_xts_encrypt:
.byte 102,15,56,220,241
.byte 102,15,56,220,249
.Lxts_enc_loop6_enter:
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leaq 32(%rcx),%rcx
@@ -1292,7 +1300,7 @@ aesni_xts_encrypt:
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lxts_enc_loop6
pshufd $19,%xmm14,%xmm9
@@ -1307,7 +1315,7 @@ aesni_xts_encrypt:
.byte 102,15,56,220,233
.byte 102,15,56,220,241
.byte 102,15,56,220,249
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
pshufd $19,%xmm14,%xmm9
pxor %xmm14,%xmm14
@@ -1322,7 +1330,7 @@ aesni_xts_encrypt:
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
- movaps 32(%rcx),%xmm0
+ movups 32(%rcx),%xmm0
pshufd $19,%xmm14,%xmm9
pxor %xmm14,%xmm14
@@ -1432,14 +1440,14 @@ aesni_xts_encrypt:
movups (%rdi),%xmm2
leaq 16(%rdi),%rdi
xorps %xmm10,%xmm2
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_enc1_9:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_9
.byte 102,15,56,221,209
@@ -1537,14 +1545,14 @@ aesni_xts_encrypt:
movups -16(%rsi),%xmm2
xorps %xmm10,%xmm2
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_enc1_10:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_10
.byte 102,15,56,221,209
@@ -1564,14 +1572,14 @@ aesni_xts_decrypt:
movups (%r9),%xmm15
movl 240(%r8),%eax
movl 240(%rcx),%r10d
- movaps (%r8),%xmm0
- movaps 16(%r8),%xmm1
+ movups (%r8),%xmm0
+ movups 16(%r8),%xmm1
leaq 32(%r8),%r8
xorps %xmm0,%xmm15
.Loop_enc1_11:
.byte 102,68,15,56,220,249
decl %eax
- movaps (%r8),%xmm1
+ movups (%r8),%xmm1
leaq 16(%r8),%r8
jnz .Loop_enc1_11
.byte 102,68,15,56,221,249
@@ -1644,13 +1652,13 @@ aesni_xts_decrypt:
movdqu 80(%rdi),%xmm7
leaq 96(%rdi),%rdi
pxor %xmm13,%xmm5
- movaps (%r11),%xmm0
+ movups (%r11),%xmm0
pxor %xmm14,%xmm6
pxor %xmm15,%xmm7
- movaps 16(%r11),%xmm1
+ movups 16(%r11),%xmm1
pxor %xmm0,%xmm2
pxor %xmm0,%xmm3
movdqa %xmm10,0(%rsp)
@@ -1666,7 +1674,7 @@ aesni_xts_decrypt:
movdqa %xmm13,48(%rsp)
.byte 102,15,56,222,233
pxor %xmm0,%xmm7
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
decl %eax
movdqa %xmm14,64(%rsp)
.byte 102,15,56,222,241
@@ -1686,7 +1694,7 @@ aesni_xts_decrypt:
.byte 102,15,56,222,241
.byte 102,15,56,222,249
.Lxts_dec_loop6_enter:
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leaq 32(%rcx),%rcx
@@ -1694,7 +1702,7 @@ aesni_xts_decrypt:
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
jnz .Lxts_dec_loop6
pshufd $19,%xmm14,%xmm9
@@ -1709,7 +1717,7 @@ aesni_xts_decrypt:
.byte 102,15,56,222,233
.byte 102,15,56,222,241
.byte 102,15,56,222,249
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
pshufd $19,%xmm14,%xmm9
pxor %xmm14,%xmm14
@@ -1724,7 +1732,7 @@ aesni_xts_decrypt:
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
- movaps 32(%rcx),%xmm0
+ movups 32(%rcx),%xmm0
pshufd $19,%xmm14,%xmm9
pxor %xmm14,%xmm14
@@ -1843,14 +1851,14 @@ aesni_xts_decrypt:
movups (%rdi),%xmm2
leaq 16(%rdi),%rdi
xorps %xmm10,%xmm2
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_dec1_12:
.byte 102,15,56,222,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_dec1_12
.byte 102,15,56,223,209
@@ -1947,14 +1955,14 @@ aesni_xts_decrypt:
movups (%rdi),%xmm2
xorps %xmm11,%xmm2
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_dec1_13:
.byte 102,15,56,222,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_dec1_13
.byte 102,15,56,223,209
@@ -1977,14 +1985,14 @@ aesni_xts_decrypt:
movups (%rsi),%xmm2
xorps %xmm10,%xmm2
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_dec1_14:
.byte 102,15,56,222,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_dec1_14
.byte 102,15,56,223,209
@@ -2019,15 +2027,15 @@ aesni_cbc_encrypt:
movups (%rdi),%xmm3
leaq 16(%rdi),%rdi
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
xorps %xmm0,%xmm3
leaq 32(%rcx),%rcx
xorps %xmm3,%xmm2
.Loop_enc1_15:
.byte 102,15,56,220,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_enc1_15
.byte 102,15,56,221,209
@@ -2074,10 +2082,10 @@ aesni_cbc_encrypt:
movups %xmm9,(%rsi)
leaq 16(%rsi),%rsi
.Lcbc_dec_loop8_enter:
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
movups (%rdi),%xmm2
movups 16(%rdi),%xmm3
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
movdqu 32(%rdi),%xmm4
@@ -2101,10 +2109,10 @@ aesni_cbc_encrypt:
pxor %xmm0,%xmm8
.byte 102,15,56,222,249
pxor %xmm0,%xmm9
- movaps (%rcx),%xmm0
+ movups (%rcx),%xmm0
.byte 102,68,15,56,222,193
.byte 102,68,15,56,222,201
- movaps 16(%rcx),%xmm1
+ movups 16(%rcx),%xmm1
call .Ldec_loop8_enter
@@ -2202,14 +2210,14 @@ aesni_cbc_encrypt:
jmp .Lcbc_dec_tail_collected
.align 16
.Lcbc_dec_one:
- movaps (%rcx),%xmm0
- movaps 16(%rcx),%xmm1
+ movups (%rcx),%xmm0
+ movups 16(%rcx),%xmm1
leaq 32(%rcx),%rcx
xorps %xmm0,%xmm2
.Loop_dec1_16:
.byte 102,15,56,222,209
decl %eax
- movaps (%rcx),%xmm1
+ movups (%rcx),%xmm1
leaq 16(%rcx),%rcx
jnz .Loop_dec1_16
.byte 102,15,56,223,209
@@ -2332,28 +2340,28 @@ aesni_set_decrypt_key:
jnz .Ldec_key_ret
leaq 16(%rdx,%rsi,1),%rdi
- movaps (%rdx),%xmm0
- movaps (%rdi),%xmm1
- movaps %xmm0,(%rdi)
- movaps %xmm1,(%rdx)
+ movups (%rdx),%xmm0
+ movups (%rdi),%xmm1
+ movups %xmm0,(%rdi)
+ movups %xmm1,(%rdx)
leaq 16(%rdx),%rdx
leaq -16(%rdi),%rdi
.Ldec_key_inverse:
- movaps (%rdx),%xmm0
- movaps (%rdi),%xmm1
+ movups (%rdx),%xmm0
+ movups (%rdi),%xmm1
.byte 102,15,56,219,192
.byte 102,15,56,219,201
leaq 16(%rdx),%rdx
leaq -16(%rdi),%rdi
- movaps %xmm0,16(%rdi)
- movaps %xmm1,-16(%rdx)
+ movups %xmm0,16(%rdi)
+ movups %xmm1,-16(%rdx)
cmpq %rdx,%rdi
ja .Ldec_key_inverse
- movaps (%rdx),%xmm0
+ movups (%rdx),%xmm0
.byte 102,15,56,219,192
- movaps %xmm0,(%rdi)
+ movups %xmm0,(%rdi)
.Ldec_key_ret:
addq $8,%rsp
.byte 0xf3,0xc3
@@ -2383,7 +2391,7 @@ __aesni_set_encrypt_key:
.L10rounds:
movl $9,%esi
- movaps %xmm0,(%rdx)
+ movups %xmm0,(%rdx)
.byte 102,15,58,223,200,1
call .Lkey_expansion_128_cold
.byte 102,15,58,223,200,2
@@ -2404,7 +2412,7 @@ __aesni_set_encrypt_key:
call .Lkey_expansion_128
.byte 102,15,58,223,200,54
call .Lkey_expansion_128
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
movl %esi,80(%rax)
xorl %eax,%eax
jmp .Lenc_key_ret
@@ -2413,7 +2421,7 @@ __aesni_set_encrypt_key:
.L12rounds:
movq 16(%rdi),%xmm2
movl $11,%esi
- movaps %xmm0,(%rdx)
+ movups %xmm0,(%rdx)
.byte 102,15,58,223,202,1
call .Lkey_expansion_192a_cold
.byte 102,15,58,223,202,2
@@ -2430,7 +2438,7 @@ __aesni_set_encrypt_key:
call .Lkey_expansion_192a
.byte 102,15,58,223,202,128
call .Lkey_expansion_192b
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
movl %esi,48(%rax)
xorq %rax,%rax
jmp .Lenc_key_ret
@@ -2440,8 +2448,8 @@ __aesni_set_encrypt_key:
movups 16(%rdi),%xmm2
movl $13,%esi
leaq 16(%rax),%rax
- movaps %xmm0,(%rdx)
- movaps %xmm2,16(%rdx)
+ movups %xmm0,(%rdx)
+ movups %xmm2,16(%rdx)
.byte 102,15,58,223,202,1
call .Lkey_expansion_256a_cold
.byte 102,15,58,223,200,1
@@ -2468,7 +2476,7 @@ __aesni_set_encrypt_key:
call .Lkey_expansion_256b
.byte 102,15,58,223,202,64
call .Lkey_expansion_256a
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
movl %esi,16(%rax)
xorq %rax,%rax
jmp .Lenc_key_ret
@@ -2483,7 +2491,7 @@ __aesni_set_encrypt_key:
.align 16
.Lkey_expansion_128:
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
leaq 16(%rax),%rax
.Lkey_expansion_128_cold:
shufps $16,%xmm0,%xmm4
@@ -2496,7 +2504,7 @@ __aesni_set_encrypt_key:
.align 16
.Lkey_expansion_192a:
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
leaq 16(%rax),%rax
.Lkey_expansion_192a_cold:
movaps %xmm2,%xmm5
@@ -2518,15 +2526,15 @@ __aesni_set_encrypt_key:
.Lkey_expansion_192b:
movaps %xmm0,%xmm3
shufps $68,%xmm0,%xmm5
- movaps %xmm5,(%rax)
+ movups %xmm5,(%rax)
shufps $78,%xmm2,%xmm3
- movaps %xmm3,16(%rax)
+ movups %xmm3,16(%rax)
leaq 32(%rax),%rax
jmp .Lkey_expansion_192b_warm
.align 16
.Lkey_expansion_256a:
- movaps %xmm2,(%rax)
+ movups %xmm2,(%rax)
leaq 16(%rax),%rax
.Lkey_expansion_256a_cold:
shufps $16,%xmm0,%xmm4
@@ -2539,7 +2547,7 @@ __aesni_set_encrypt_key:
.align 16
.Lkey_expansion_256b:
- movaps %xmm0,(%rax)
+ movups %xmm0,(%rax)
leaq 16(%rax),%rax
shufps $16,%xmm2,%xmm4
@@ -2563,3 +2571,8 @@ __aesni_set_encrypt_key:
.byte
65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
.align 64
+
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+
diff --git a/lib/accelerated/intel/asm/appro-aes-x86.s
b/lib/accelerated/intel/asm/appro-aes-x86.s
index a8dc2ac..f095a63 100644
--- a/lib/accelerated/intel/asm/appro-aes-x86.s
+++ b/lib/accelerated/intel/asm/appro-aes-x86.s
@@ -47,14 +47,14 @@ aesni_encrypt:
movups (%eax),%xmm2
movl 240(%edx),%ecx
movl 8(%esp),%eax
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L000enc1_loop_1:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L000enc1_loop_1
.byte 102,15,56,221,209
@@ -71,14 +71,14 @@ aesni_decrypt:
movups (%eax),%xmm2
movl 240(%edx),%ecx
movl 8(%esp),%eax
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L001dec1_loop_2:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L001dec1_loop_2
.byte 102,15,56,223,209
@@ -88,25 +88,25 @@ aesni_decrypt:
.type _aesni_encrypt3,@function
.align 16
_aesni_encrypt3:
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
shrl $1,%ecx
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
pxor %xmm0,%xmm4
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.L002enc3_loop:
.byte 102,15,56,220,209
.byte 102,15,56,220,217
decl %ecx
.byte 102,15,56,220,225
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leal 32(%edx),%edx
.byte 102,15,56,220,224
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L002enc3_loop
.byte 102,15,56,220,209
.byte 102,15,56,220,217
@@ -119,25 +119,25 @@ _aesni_encrypt3:
.type _aesni_decrypt3,@function
.align 16
_aesni_decrypt3:
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
shrl $1,%ecx
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
pxor %xmm0,%xmm4
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.L003dec3_loop:
.byte 102,15,56,222,209
.byte 102,15,56,222,217
decl %ecx
.byte 102,15,56,222,225
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leal 32(%edx),%edx
.byte 102,15,56,222,224
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L003dec3_loop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
@@ -150,28 +150,28 @@ _aesni_decrypt3:
.type _aesni_encrypt4,@function
.align 16
_aesni_encrypt4:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
shrl $1,%ecx
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
pxor %xmm0,%xmm4
pxor %xmm0,%xmm5
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.L004enc4_loop:
.byte 102,15,56,220,209
.byte 102,15,56,220,217
decl %ecx
.byte 102,15,56,220,225
.byte 102,15,56,220,233
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leal 32(%edx),%edx
.byte 102,15,56,220,224
.byte 102,15,56,220,232
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L004enc4_loop
.byte 102,15,56,220,209
.byte 102,15,56,220,217
@@ -186,28 +186,28 @@ _aesni_encrypt4:
.type _aesni_decrypt4,@function
.align 16
_aesni_decrypt4:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
shrl $1,%ecx
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
pxor %xmm0,%xmm4
pxor %xmm0,%xmm5
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.L005dec4_loop:
.byte 102,15,56,222,209
.byte 102,15,56,222,217
decl %ecx
.byte 102,15,56,222,225
.byte 102,15,56,222,233
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leal 32(%edx),%edx
.byte 102,15,56,222,224
.byte 102,15,56,222,232
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L005dec4_loop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
@@ -222,9 +222,9 @@ _aesni_decrypt4:
.type _aesni_encrypt6,@function
.align 16
_aesni_encrypt6:
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
shrl $1,%ecx
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
@@ -238,7 +238,7 @@ _aesni_encrypt6:
.byte 102,15,56,220,233
pxor %xmm0,%xmm7
.byte 102,15,56,220,241
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,220,249
jmp .L_aesni_encrypt6_enter
.align 16
@@ -252,7 +252,7 @@ _aesni_encrypt6:
.byte 102,15,56,220,249
.align 16
.L_aesni_encrypt6_enter:
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,220,208
.byte 102,15,56,220,216
leal 32(%edx),%edx
@@ -260,7 +260,7 @@ _aesni_encrypt6:
.byte 102,15,56,220,232
.byte 102,15,56,220,240
.byte 102,15,56,220,248
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L006enc6_loop
.byte 102,15,56,220,209
.byte 102,15,56,220,217
@@ -279,9 +279,9 @@ _aesni_encrypt6:
.type _aesni_decrypt6,@function
.align 16
_aesni_decrypt6:
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
shrl $1,%ecx
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
pxor %xmm0,%xmm3
@@ -295,7 +295,7 @@ _aesni_decrypt6:
.byte 102,15,56,222,233
pxor %xmm0,%xmm7
.byte 102,15,56,222,241
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,222,249
jmp .L_aesni_decrypt6_enter
.align 16
@@ -309,7 +309,7 @@ _aesni_decrypt6:
.byte 102,15,56,222,249
.align 16
.L_aesni_decrypt6_enter:
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,222,208
.byte 102,15,56,222,216
leal 32(%edx),%edx
@@ -317,7 +317,7 @@ _aesni_decrypt6:
.byte 102,15,56,222,232
.byte 102,15,56,222,240
.byte 102,15,56,222,248
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L007dec6_loop
.byte 102,15,56,222,209
.byte 102,15,56,222,217
@@ -418,14 +418,14 @@ aesni_ecb_encrypt:
jmp .L008ecb_ret
.align 16
.L013ecb_enc_one:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L017enc1_loop_3:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L017enc1_loop_3
.byte 102,15,56,221,209
@@ -521,14 +521,14 @@ aesni_ecb_encrypt:
jmp .L008ecb_ret
.align 16
.L021ecb_dec_one:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L025dec1_loop_4:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L025dec1_loop_4
.byte 102,15,56,223,209
@@ -583,56 +583,55 @@ aesni_ccm64_encrypt_blocks:
movl %ebp,48(%esp)
movdqu (%ebx),%xmm7
movdqu (%ecx),%xmm3
+ movl 240(%edx),%ecx
movl $202182159,(%esp)
movl $134810123,4(%esp)
movl $67438087,8(%esp)
movl $66051,12(%esp)
- movl $1,%ecx
+ movl $1,%ebx
xorl %ebp,%ebp
- movl %ecx,16(%esp)
+ movl %ebx,16(%esp)
movl %ebp,20(%esp)
movl %ebp,24(%esp)
movl %ebp,28(%esp)
- movdqa (%esp),%xmm5
-.byte 102,15,56,0,253
- movl 240(%edx),%ecx
- movl %edx,%ebp
- movl %ecx,%ebx
+ shrl $1,%ecx
+ leal (%edx),%ebp
movdqa %xmm7,%xmm2
+ movl %ecx,%ebx
+ movdqa (%esp),%xmm5
.L026ccm64_enc_outer:
- movups (%esi),%xmm6
-.byte 102,15,56,0,213
- movl %ebp,%edx
+ movups (%ebp),%xmm0
movl %ebx,%ecx
- movaps (%edx),%xmm0
- shrl $1,%ecx
- movaps 16(%edx),%xmm1
- xorps %xmm0,%xmm6
- leal 32(%edx),%edx
+ movups (%esi),%xmm6
xorps %xmm0,%xmm2
- xorps %xmm6,%xmm3
- movaps (%edx),%xmm0
+ movups 16(%ebp),%xmm1
+ xorps %xmm6,%xmm0
+ leal 32(%ebp),%edx
+ xorps %xmm0,%xmm3
+ movups (%edx),%xmm0
.L027ccm64_enc2_loop:
.byte 102,15,56,220,209
decl %ecx
.byte 102,15,56,220,217
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,220,208
leal 32(%edx),%edx
.byte 102,15,56,220,216
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L027ccm64_enc2_loop
+.byte 102,15,56,0,253
.byte 102,15,56,220,209
.byte 102,15,56,220,217
+ paddq 16(%esp),%xmm7
.byte 102,15,56,221,208
.byte 102,15,56,221,216
- paddq 16(%esp),%xmm7
decl %eax
leal 16(%esi),%esi
xorps %xmm2,%xmm6
movdqa %xmm7,%xmm2
movups %xmm6,(%edi)
leal 16(%edi),%edi
+.byte 102,15,56,0,253
jnz .L026ccm64_enc_outer
movl 48(%esp),%esp
movl 40(%esp),%edi
@@ -664,80 +663,86 @@ aesni_ccm64_decrypt_blocks:
movl %ebp,48(%esp)
movdqu (%ebx),%xmm7
movdqu (%ecx),%xmm3
+ movl 240(%edx),%ecx
movl $202182159,(%esp)
movl $134810123,4(%esp)
movl $67438087,8(%esp)
movl $66051,12(%esp)
- movl $1,%ecx
+ movl $1,%ebx
xorl %ebp,%ebp
- movl %ecx,16(%esp)
+ movl %ebx,16(%esp)
movl %ebp,20(%esp)
movl %ebp,24(%esp)
movl %ebp,28(%esp)
movdqa (%esp),%xmm5
movdqa %xmm7,%xmm2
-.byte 102,15,56,0,253
- movl 240(%edx),%ecx
movl %edx,%ebp
movl %ecx,%ebx
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+.byte 102,15,56,0,253
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L028enc1_loop_5:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L028enc1_loop_5
.byte 102,15,56,221,209
-.L029ccm64_dec_outer:
- paddq 16(%esp),%xmm7
movups (%esi),%xmm6
+ paddq 16(%esp),%xmm7
+.byte 102,15,56,0,253
+ leal 16(%esi),%esi
+ jmp .L029ccm64_dec_outer
+.align 16
+.L029ccm64_dec_outer:
xorps %xmm2,%xmm6
movdqa %xmm7,%xmm2
- leal 16(%esi),%esi
-.byte 102,15,56,0,213
- movl %ebp,%edx
movl %ebx,%ecx
movups %xmm6,(%edi)
leal 16(%edi),%edi
subl $1,%eax
jz .L030ccm64_dec_break
- movaps (%edx),%xmm0
+ movups (%ebp),%xmm0
shrl $1,%ecx
- movaps 16(%edx),%xmm1
+ movups 16(%ebp),%xmm1
xorps %xmm0,%xmm6
- leal 32(%edx),%edx
+ leal 32(%ebp),%edx
xorps %xmm0,%xmm2
xorps %xmm6,%xmm3
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.L031ccm64_dec2_loop:
.byte 102,15,56,220,209
decl %ecx
.byte 102,15,56,220,217
- movaps 16(%edx),%xmm1
+ movups 16(%edx),%xmm1
.byte 102,15,56,220,208
leal 32(%edx),%edx
.byte 102,15,56,220,216
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
jnz .L031ccm64_dec2_loop
+ movups (%esi),%xmm6
+ paddq 16(%esp),%xmm7
.byte 102,15,56,220,209
.byte 102,15,56,220,217
+.byte 102,15,56,0,253
+ leal 16(%esi),%esi
.byte 102,15,56,221,208
.byte 102,15,56,221,216
jmp .L029ccm64_dec_outer
.align 16
.L030ccm64_dec_break:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movl %ebp,%edx
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
xorps %xmm0,%xmm6
leal 32(%edx),%edx
xorps %xmm6,%xmm3
.L032enc1_loop_6:
.byte 102,15,56,220,217
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L032enc1_loop_6
.byte 102,15,56,221,217
@@ -826,8 +831,8 @@ aesni_ctr32_encrypt_blocks:
por %xmm1,%xmm5
por %xmm1,%xmm6
por %xmm1,%xmm7
- movaps (%ebp),%xmm0
- movaps 16(%ebp),%xmm1
+ movups (%ebp),%xmm0
+ movups 16(%ebp),%xmm1
leal 32(%ebp),%edx
decl %ecx
pxor %xmm0,%xmm2
@@ -841,7 +846,7 @@ aesni_ctr32_encrypt_blocks:
.byte 102,15,56,220,233
pxor %xmm0,%xmm7
.byte 102,15,56,220,241
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,220,249
call .L_aesni_encrypt6_enter
movups (%esi),%xmm1
@@ -920,14 +925,14 @@ aesni_ctr32_encrypt_blocks:
movups (%ebx),%xmm2
movl 240(%edx),%ecx
.L037ctr32_one:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L041enc1_loop_7:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L041enc1_loop_7
.byte 102,15,56,221,209
@@ -994,14 +999,14 @@ aesni_xts_encrypt:
movl 40(%esp),%esi
movl 240(%edx),%ecx
movups (%esi),%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L042enc1_loop_8:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L042enc1_loop_8
.byte 102,15,56,221,209
@@ -1064,7 +1069,7 @@ aesni_xts_encrypt:
pshufd $19,%xmm0,%xmm7
movdqa %xmm1,64(%esp)
paddq %xmm1,%xmm1
- movaps (%ebp),%xmm0
+ movups (%ebp),%xmm0
pand %xmm3,%xmm7
movups (%esi),%xmm2
pxor %xmm1,%xmm7
@@ -1082,7 +1087,7 @@ aesni_xts_encrypt:
pxor (%esp),%xmm2
movdqa %xmm7,80(%esp)
pxor %xmm1,%xmm7
- movaps 16(%ebp),%xmm1
+ movups 16(%ebp),%xmm1
leal 32(%ebp),%edx
pxor 16(%esp),%xmm3
.byte 102,15,56,220,209
@@ -1095,7 +1100,7 @@ aesni_xts_encrypt:
.byte 102,15,56,220,233
pxor %xmm0,%xmm7
.byte 102,15,56,220,241
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,220,249
call .L_aesni_encrypt6_enter
movdqa 80(%esp),%xmm1
@@ -1196,14 +1201,14 @@ aesni_xts_encrypt:
movups (%esi),%xmm2
leal 16(%esi),%esi
xorps %xmm5,%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L051enc1_loop_9:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L051enc1_loop_9
.byte 102,15,56,221,209
@@ -1307,14 +1312,14 @@ aesni_xts_encrypt:
movl %ebx,%ecx
movups -16(%edi),%xmm2
xorps %xmm5,%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L054enc1_loop_10:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L054enc1_loop_10
.byte 102,15,56,221,209
@@ -1341,14 +1346,14 @@ aesni_xts_decrypt:
movl 40(%esp),%esi
movl 240(%edx),%ecx
movups (%esi),%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L055enc1_loop_11:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L055enc1_loop_11
.byte 102,15,56,221,209
@@ -1416,7 +1421,7 @@ aesni_xts_decrypt:
pshufd $19,%xmm0,%xmm7
movdqa %xmm1,64(%esp)
paddq %xmm1,%xmm1
- movaps (%ebp),%xmm0
+ movups (%ebp),%xmm0
pand %xmm3,%xmm7
movups (%esi),%xmm2
pxor %xmm1,%xmm7
@@ -1434,7 +1439,7 @@ aesni_xts_decrypt:
pxor (%esp),%xmm2
movdqa %xmm7,80(%esp)
pxor %xmm1,%xmm7
- movaps 16(%ebp),%xmm1
+ movups 16(%ebp),%xmm1
leal 32(%ebp),%edx
pxor 16(%esp),%xmm3
.byte 102,15,56,222,209
@@ -1447,7 +1452,7 @@ aesni_xts_decrypt:
.byte 102,15,56,222,233
pxor %xmm0,%xmm7
.byte 102,15,56,222,241
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,222,249
call .L_aesni_decrypt6_enter
movdqa 80(%esp),%xmm1
@@ -1548,14 +1553,14 @@ aesni_xts_decrypt:
movups (%esi),%xmm2
leal 16(%esi),%esi
xorps %xmm5,%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L064dec1_loop_12:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L064dec1_loop_12
.byte 102,15,56,223,209
@@ -1656,14 +1661,14 @@ aesni_xts_decrypt:
movl %ebx,%ecx
movups (%esi),%xmm2
xorps %xmm5,%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L067dec1_loop_13:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L067dec1_loop_13
.byte 102,15,56,223,209
@@ -1683,14 +1688,14 @@ aesni_xts_decrypt:
movl %ebx,%ecx
movups (%edi),%xmm2
xorps %xmm6,%xmm2
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L069dec1_loop_14:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L069dec1_loop_14
.byte 102,15,56,223,209
@@ -1740,15 +1745,15 @@ aesni_cbc_encrypt:
.L073cbc_enc_loop:
movups (%esi),%xmm7
leal 16(%esi),%esi
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
xorps %xmm0,%xmm7
leal 32(%edx),%edx
xorps %xmm7,%xmm2
.L074enc1_loop_15:
.byte 102,15,56,220,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L074enc1_loop_15
.byte 102,15,56,221,209
@@ -1863,14 +1868,14 @@ aesni_cbc_encrypt:
jmp .L079cbc_dec_tail_collected
.align 16
.L080cbc_dec_one:
- movaps (%edx),%xmm0
- movaps 16(%edx),%xmm1
+ movups (%edx),%xmm0
+ movups 16(%edx),%xmm1
leal 32(%edx),%edx
xorps %xmm0,%xmm2
.L084dec1_loop_16:
.byte 102,15,56,222,209
decl %ecx
- movaps (%edx),%xmm1
+ movups (%edx),%xmm1
leal 16(%edx),%edx
jnz .L084dec1_loop_16
.byte 102,15,56,223,209
@@ -1961,7 +1966,7 @@ _aesni_set_encrypt_key:
.align 16
.L09010rounds:
movl $9,%ecx
- movaps %xmm0,-16(%edx)
+ movups %xmm0,-16(%edx)
.byte 102,15,58,223,200,1
call .L091key_128_cold
.byte 102,15,58,223,200,2
@@ -1982,13 +1987,13 @@ _aesni_set_encrypt_key:
call .L092key_128
.byte 102,15,58,223,200,54
call .L092key_128
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
movl %ecx,80(%edx)
xorl %eax,%eax
ret
.align 16
.L092key_128:
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
leal 16(%edx),%edx
.L091key_128_cold:
shufps $16,%xmm0,%xmm4
@@ -2002,7 +2007,7 @@ _aesni_set_encrypt_key:
.L08812rounds:
movq 16(%eax),%xmm2
movl $11,%ecx
- movaps %xmm0,-16(%edx)
+ movups %xmm0,-16(%edx)
.byte 102,15,58,223,202,1
call .L093key_192a_cold
.byte 102,15,58,223,202,2
@@ -2019,13 +2024,13 @@ _aesni_set_encrypt_key:
call .L095key_192a
.byte 102,15,58,223,202,128
call .L094key_192b
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
movl %ecx,48(%edx)
xorl %eax,%eax
ret
.align 16
.L095key_192a:
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
leal 16(%edx),%edx
.align 16
.L093key_192a_cold:
@@ -2047,9 +2052,9 @@ _aesni_set_encrypt_key:
.L094key_192b:
movaps %xmm0,%xmm3
shufps $68,%xmm0,%xmm5
- movaps %xmm5,(%edx)
+ movups %xmm5,(%edx)
shufps $78,%xmm2,%xmm3
- movaps %xmm3,16(%edx)
+ movups %xmm3,16(%edx)
leal 32(%edx),%edx
jmp .L096key_192b_warm
.align 16
@@ -2057,8 +2062,8 @@ _aesni_set_encrypt_key:
movups 16(%eax),%xmm2
movl $13,%ecx
leal 16(%edx),%edx
- movaps %xmm0,-32(%edx)
- movaps %xmm2,-16(%edx)
+ movups %xmm0,-32(%edx)
+ movups %xmm2,-16(%edx)
.byte 102,15,58,223,202,1
call .L097key_256a_cold
.byte 102,15,58,223,200,1
@@ -2085,13 +2090,13 @@ _aesni_set_encrypt_key:
call .L098key_256b
.byte 102,15,58,223,202,64
call .L099key_256a
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
movl %ecx,16(%edx)
xorl %eax,%eax
ret
.align 16
.L099key_256a:
- movaps %xmm2,(%edx)
+ movups %xmm2,(%edx)
leal 16(%edx),%edx
.L097key_256a_cold:
shufps $16,%xmm0,%xmm4
@@ -2103,7 +2108,7 @@ _aesni_set_encrypt_key:
ret
.align 16
.L098key_256b:
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
leal 16(%edx),%edx
shufps $16,%xmm2,%xmm4
xorps %xmm4,%xmm2
@@ -2146,26 +2151,26 @@ aesni_set_decrypt_key:
testl %eax,%eax
jnz .L100dec_key_ret
leal 16(%edx,%ecx,1),%eax
- movaps (%edx),%xmm0
- movaps (%eax),%xmm1
- movaps %xmm0,(%eax)
- movaps %xmm1,(%edx)
+ movups (%edx),%xmm0
+ movups (%eax),%xmm1
+ movups %xmm0,(%eax)
+ movups %xmm1,(%edx)
leal 16(%edx),%edx
leal -16(%eax),%eax
.L101dec_key_inverse:
- movaps (%edx),%xmm0
- movaps (%eax),%xmm1
+ movups (%edx),%xmm0
+ movups (%eax),%xmm1
.byte 102,15,56,219,192
.byte 102,15,56,219,201
leal 16(%edx),%edx
leal -16(%eax),%eax
- movaps %xmm0,16(%eax)
- movaps %xmm1,-16(%edx)
+ movups %xmm0,16(%eax)
+ movups %xmm1,-16(%edx)
cmpl %edx,%eax
ja .L101dec_key_inverse
- movaps (%edx),%xmm0
+ movups (%edx),%xmm0
.byte 102,15,56,219,192
- movaps %xmm0,(%edx)
+ movups %xmm0,(%edx)
xorl %eax,%eax
.L100dec_key_ret:
ret
@@ -2174,3 +2179,8 @@ aesni_set_decrypt_key:
.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
.byte 115,108,46,111,114,103,62,0
+
+#if defined(__linux__) && defined(__ELF__)
+.section .note.GNU-stack,"",%progbits
+#endif
+
diff --git a/lib/pkcs11.c b/lib/pkcs11.c
index 40d112f..8e33f8a 100644
--- a/lib/pkcs11.c
+++ b/lib/pkcs11.c
@@ -178,12 +178,28 @@ pkcs11_rescan_slots (void)
static int
pkcs11_add_module (const char *name, struct ck_function_list *module)
{
+ struct ck_info info;
+ int i;
+
if (active_providers >= MAX_PROVIDERS)
{
gnutls_assert ();
return GNUTLS_E_CONSTRAINT_ERROR;
}
+ /* initially check if this module is a duplicate */
+ memset(&info, 0, sizeof(info));
+ pkcs11_get_module_info (module, &info);
+ for (i=0;i<active_providers;i++)
+ {
+ /* already loaded, skip the rest */
+ if (memcmp(&info, &providers[i].info, sizeof(info)) == 0)
+ {
+ _gnutls_debug_log("%s is already loaded.\n", name);
+ return 0;
+ }
+ }
+
active_providers++;
providers[active_providers - 1].module = module;
@@ -215,10 +231,7 @@ pkcs11_add_module (const char *name, struct
ck_function_list *module)
goto fail;
}
- memset (&providers[active_providers - 1].info, 0,
- sizeof (providers[active_providers - 1].info));
- pkcs11_get_module_info (providers[active_providers - 1].module,
- &providers[active_providers - 1].info);
+ memcpy (&providers[active_providers - 1].info, &info, sizeof(info));
_gnutls_debug_log ("p11: loaded provider '%s' with %d slots\n",
name, (int) providers[active_providers - 1].nslots);
hooks/post-receive
--
GNU gnutls
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [SCM] GNU gnutls branch, master, updated. gnutls_3_0_0-30-g449101d,
Nikos Mavrogiannopoulos <=