summaryrefslogtreecommitdiff
path: root/third_party/boringssl/core/cortex-m/ghash.S
diff options
context:
space:
mode:
authorNicolas Boichat <drinkcat@chromium.org>2018-07-05 16:54:46 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-09-21 00:50:59 -0700
commit15dd79c1a2ab3355a7d7a0197fcacff973a001a2 (patch)
tree29da6e71d014137ea52c9ff728b1ba1061119700 /third_party/boringssl/core/cortex-m/ghash.S
parent4a237232c27c18d5367403d743d523509570e5cd (diff)
downloadchrome-ec-15dd79c1a2ab3355a7d7a0197fcacff973a001a2.tar.gz
aes-gcm: Adapt AES-GCM to build for EC
Update header, C code, trim unnecessary bits. Also add a test with vectors taken from BoringSSL tests. BRANCH=none BUG=b:111160949 TEST=make run-aes -j TEST=make BOARD=nocturne_fp test-aes -j flash_fp_mcu aes.bin runtest => pass (C implementation speed: 909555 us for 1000 iterations) (ASM implementation speed: 596690 us for 1000 iterations) Change-Id: Ief54a8441d26ba44de4c3ac81e203cab7472269f Signed-off-by: Nicolas Boichat <drinkcat@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1141446 Commit-Ready: Nicolas Norvez <norvez@chromium.org> Reviewed-by: Nicolas Norvez <norvez@chromium.org>
Diffstat (limited to 'third_party/boringssl/core/cortex-m/ghash.S')
-rw-r--r--third_party/boringssl/core/cortex-m/ghash.S17
1 files changed, 6 insertions, 11 deletions
diff --git a/third_party/boringssl/core/cortex-m/ghash.S b/third_party/boringssl/core/cortex-m/ghash.S
index fafcb5c23b..a1eb97b9c5 100644
--- a/third_party/boringssl/core/cortex-m/ghash.S
+++ b/third_party/boringssl/core/cortex-m/ghash.S
@@ -8,12 +8,7 @@
@ in the file LICENSE in the source distribution or at
@ https://www.openssl.org/source/license.html
-#include <openssl/arm_arch.h>
-
-@ Silence ARMv8 deprecated IT instruction warnings. This file is used by both
-@ ARMv7 and ARMv8 processors and does not use ARMv8 instructions. (ARMv8 PMULL
-@ instructions are in aesv8-armx.pl.)
-.arch armv7-a
+#define __ARM_ARCH__ 7
.text
#if defined(__thumb2__) || defined(__clang__)
@@ -111,7 +106,7 @@ gcm_ghash_4bit:
#ifdef __thumb2__
it pl
#endif
- ldrplb r12,[r2,r3]
+ ldrbpl r12,[r2,r3]
eor r6,r6,r7,lsl#28
eor r7,r11,r7,lsr#4
@@ -124,7 +119,7 @@ gcm_ghash_4bit:
#ifdef __thumb2__
it pl
#endif
- ldrplb r8,[r0,r3]
+ ldrbpl r8,[r0,r3]
eor r4,r4,r5,lsl#28
eor r5,r9,r5,lsr#4
ldrh r9,[sp,r14]
@@ -180,7 +175,7 @@ gcm_ghash_4bit:
#ifdef __thumb2__
it ne
#endif
- ldrneb r12,[r2,#15]
+ ldrbne r12,[r2,#15]
#if __ARM_ARCH__>=7 && defined(__ARMEL__)
rev r6,r6
str r6,[r0,#4]
@@ -270,7 +265,7 @@ gcm_gmult_4bit:
#ifdef __thumb2__
it pl
#endif
- ldrplb r12,[r0,r3]
+ ldrbpl r12,[r0,r3]
eor r6,r6,r7,lsl#28
eor r7,r11,r7,lsr#4
@@ -363,7 +358,7 @@ gcm_gmult_4bit:
.word 0xe12fff1e @ interoperable with Thumb ISA:-)
#endif
.size gcm_gmult_4bit,.-gcm_gmult_4bit
-#if __ARM_MAX_ARCH__>=7
+#ifdef __ARM_NEON__
.arch armv7-a
.fpu neon