Index: third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S |
diff --git a/third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S b/third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S |
index 45d8bd594f73a511b64dec033f4b3391c8b8ba94..1889fc701ac0947a29b8c4d26d4a060f86ca4064 100644 |
--- a/third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S |
+++ b/third_party/boringssl/linux-arm/crypto/sha/sha512-armv4.S |
@@ -1,4 +1,3 @@ |
-#if defined(__arm__) |
#include "arm_arch.h" |
#ifdef __ARMEL__ |
# define LO 0 |
@@ -56,17 +55,20 @@ WORD64(0x3c9ebe0a,0x15c9bebc, 0x431d67c4,0x9c100d4c) |
WORD64(0x4cc5d4be,0xcb3e42b6, 0x597f299c,0xfc657e2a) |
WORD64(0x5fcb6fab,0x3ad6faec, 0x6c44198c,0x4a475817) |
.size K512,.-K512 |
+#if __ARM_MAX_ARCH__>=7 |
.LOPENSSL_armcap: |
.word OPENSSL_armcap_P-sha512_block_data_order |
.skip 32-4 |
+#else |
+.skip 32 |
+#endif |
.global sha512_block_data_order |
-.hidden sha512_block_data_order |
.type sha512_block_data_order,%function |
sha512_block_data_order: |
sub r3,pc,#8 @ sha512_block_data_order |
add r2,r1,r2,lsl#7 @ len to point at the end of inp |
-#if __ARM_ARCH__>=7 |
+#if __ARM_MAX_ARCH__>=7 |
ldr r12,.LOPENSSL_armcap |
ldr r12,[r3,r12] @ OPENSSL_armcap_P |
tst r12,#1 |
@@ -439,7 +441,8 @@ sha512_block_data_order: |
moveq pc,lr @ be binary compatible with V4, yet |
.word 0xe12fff1e @ interoperable with Thumb ISA:-) |
#endif |
-#if __ARM_ARCH__>=7 |
+#if __ARM_MAX_ARCH__>=7 |
+.arch armv7-a |
.fpu neon |
.align 4 |
@@ -1762,11 +1765,11 @@ sha512_block_data_order: |
bne .Loop_neon |
vldmia sp!,{d8-d15} @ epilogue |
- .word 0xe12fff1e |
+ bx lr @ .word 0xe12fff1e |
#endif |
.size sha512_block_data_order,.-sha512_block_data_order |
.asciz "SHA512 block transform for ARMv4/NEON, CRYPTOGAMS by <appro@openssl.org>" |
.align 2 |
+#if __ARM_MAX_ARCH__>=7 |
.comm OPENSSL_armcap_P,4,4 |
- |
#endif |