[openssl-commits] [openssl] master update
Andy Polyakov
appro at openssl.org
Mon Apr 20 12:31:43 UTC 2015
The branch master has been updated
via 35141544e2994f0f3b87be7d7c9a43ea3cd9840a (commit)
from 3b34b7319ecc53cac459b532f95681a0cb245ffc (commit)
- Log -----------------------------------------------------------------
commit 35141544e2994f0f3b87be7d7c9a43ea3cd9840a
Author: Andy Polyakov <appro at openssl.org>
Date: Mon Apr 20 14:30:50 2015 +0200
aes/asm/vpaes-armv8.pl: make it compile on iOS.
Reviewed-by: Richard Levitte <levitte at openssl.org>
-----------------------------------------------------------------------
Summary of changes:
crypto/aes/asm/vpaes-armv8.pl | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/crypto/aes/asm/vpaes-armv8.pl b/crypto/aes/asm/vpaes-armv8.pl
index 1144536..bc90b9f 100755
--- a/crypto/aes/asm/vpaes-armv8.pl
+++ b/crypto/aes/asm/vpaes-armv8.pl
@@ -20,11 +20,14 @@
# Cortex-A53 21.5 18.1/20.6 [17.5/19.8 ]
# Cortex-A57 36.0(**) 20.4/24.9(**) [14.4/16.6 ]
# X-Gene 45.9(**) 45.8/57.7(**) [33.1/37.6(**) ]
+# Denver(***) 16.6(**) 15.1/17.8(**) [8.80/9.93 ]
+# Apple A7(***) 22.7(**) 10.9/14.3 [8.45/10.0 ]
#
# (*) ECB denotes approximate result for parallelizeable modes
# such as CBC decrypt, CTR, etc.;
# (**) these results are worse than scalar compiler-generated
# code, but it's constant-time and therefore preferred;
+# (***) presented for reference/comparison purposes;
$flavour = shift;
while (($output=shift) && ($output!~/^\w[\w\-]*\.\w+$/)) {}
@@ -206,7 +209,7 @@ _vpaes_encrypt_core:
eor v3.16b, v3.16b, v2.16b // vpxor %xmm2, %xmm3, %xmm3 # 0 = 2A+B
tbl v4.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm4 # 0 = 2B+C
eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D
- bic x11, x11, #1<<6 // and \$0x30, %r11 # ... mod 4
+ and x11, x11, #~(1<<6) // and \$0x30, %r11 # ... mod 4
eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D
sub w8, w8, #1 // nr--
@@ -309,7 +312,7 @@ _vpaes_encrypt_2x:
tbl v12.16b, {v11.16b},v1.16b
eor v0.16b, v0.16b, v3.16b // vpxor %xmm3, %xmm0, %xmm0 # 3 = 2A+B+D
eor v8.16b, v8.16b, v11.16b
- bic x11, x11, #1<<6 // and \$0x30, %r11 # ... mod 4
+ and x11, x11, #~(1<<6) // and \$0x30, %r11 # ... mod 4
eor v0.16b, v0.16b, v4.16b // vpxor %xmm4, %xmm0, %xmm0 # 0 = 2A+3B+C+D
eor v8.16b, v8.16b, v12.16b
sub w8, w8, #1 // nr--
@@ -683,8 +686,8 @@ _vpaes_schedule_core:
.Lschedule_go:
cmp $bits, #192 // cmp \$192, %esi
- bhi .Lschedule_256
- beq .Lschedule_192
+ b.hi .Lschedule_256
+ b.eq .Lschedule_192
// 128: fall though
##
@@ -1021,7 +1024,7 @@ _vpaes_schedule_mangle:
.Lschedule_mangle_both:
tbl v3.16b, {v3.16b}, v1.16b // vpshufb %xmm1, %xmm3, %xmm3
add x8, x8, #64-16 // add \$-16, %r8
- bic x8, x8, #1<<6 // and \$0x30, %r8
+ and x8, x8, #~(1<<6) // and \$0x30, %r8
st1 {v3.2d}, [$out] // vmovdqu %xmm3, (%rdx)
ret
.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
More information about the openssl-commits
mailing list