| Index: linux-arm/crypto/sha/sha256-armv4.S
|
| diff --git a/linux-arm/crypto/sha/sha256-armv4.S b/linux-arm/crypto/sha/sha256-armv4.S
|
| index 60400413222303662a080794a62ef1b64af2b1b1..f37fd7c7cfc2d880cc219ceee21b1424c28c6c69 100644
|
| --- a/linux-arm/crypto/sha/sha256-armv4.S
|
| +++ b/linux-arm/crypto/sha/sha256-armv4.S
|
| @@ -1,4 +1,11 @@
|
| #if defined(__arm__)
|
| +@ Copyright 2007-2016 The OpenSSL Project Authors. All Rights Reserved.
|
| +@
|
| +@ Licensed under the OpenSSL license (the "License"). You may not use
|
| +@ this file except in compliance with the License. You can obtain a copy
|
| +@ in the file LICENSE in the source distribution or at
|
| +@ https://www.openssl.org/source/license.html
|
| +
|
|
|
| @ ====================================================================
|
| @ Written by Andy Polyakov <appro@openssl.org> for the OpenSSL
|
| @@ -45,16 +52,11 @@
|
| #endif
|
|
|
| .text
|
| -#if __ARM_ARCH__<7
|
| -.code 32
|
| -#else
|
| +#if defined(__thumb2__)
|
| .syntax unified
|
| -# if defined(__thumb2__) && !defined(__APPLE__)
|
| -# define adrl adr
|
| .thumb
|
| -# else
|
| +#else
|
| .code 32
|
| -# endif
|
| #endif
|
|
|
| .type K256,%object
|
| @@ -89,10 +91,10 @@ K256:
|
| .type sha256_block_data_order,%function
|
| sha256_block_data_order:
|
| .Lsha256_block_data_order:
|
| -#if __ARM_ARCH__<7
|
| +#if __ARM_ARCH__<7 && !defined(__thumb2__)
|
| sub r3,pc,#8 @ sha256_block_data_order
|
| #else
|
| - adr r3,sha256_block_data_order
|
| + adr r3,.Lsha256_block_data_order
|
| #endif
|
| #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
|
| ldr r12,.LOPENSSL_armcap
|
| @@ -1878,13 +1880,14 @@ sha256_block_data_order:
|
| .globl sha256_block_data_order_neon
|
| .hidden sha256_block_data_order_neon
|
| .type sha256_block_data_order_neon,%function
|
| -.align 4
|
| +.align 5
|
| +.skip 16
|
| sha256_block_data_order_neon:
|
| .LNEON:
|
| stmdb sp!,{r4,r5,r6,r7,r8,r9,r10,r11,r12,lr}
|
|
|
| sub r11,sp,#16*4+16
|
| - adrl r14,K256
|
| + adr r14,K256
|
| bic r11,r11,#15 @ align for 128-bit stores
|
| mov r12,sp
|
| mov sp,r11 @ alloca
|
| @@ -2660,7 +2663,7 @@ sha256_block_data_order_neon:
|
| #endif
|
| #if __ARM_MAX_ARCH__>=7 && !defined(__KERNEL__)
|
|
|
| -# if defined(__thumb2__) && !defined(__APPLE__)
|
| +# if defined(__thumb2__)
|
| # define INST(a,b,c,d) .byte c,d|0xc,a,b
|
| # else
|
| # define INST(a,b,c,d) .byte a,b,c,d
|
| @@ -2671,16 +2674,11 @@ sha256_block_data_order_neon:
|
| sha256_block_data_order_armv8:
|
| .LARMv8:
|
| vld1.32 {q0,q1},[r0]
|
| -# ifdef __APPLE__
|
| sub r3,r3,#256+32
|
| -# elif defined(__thumb2__)
|
| - adr r3,.LARMv8
|
| - sub r3,r3,#.LARMv8-K256
|
| -# else
|
| - adrl r3,K256
|
| -# endif
|
| add r2,r1,r2,lsl#6 @ len to point at the end of inp
|
| + b .Loop_v8
|
|
|
| +.align 4
|
| .Loop_v8:
|
| vld1.8 {q8,q9},[r1]!
|
| vld1.8 {q10,q11},[r1]!
|
|
|