(and unify table address calculation in ARMv8 code path).
Reviewed-by: Tim Hudson <tjh@openssl.org>
#if defined(__thumb2__)
.syntax unified
.thumb
#if defined(__thumb2__)
.syntax unified
.thumb
.global sha256_block_data_order_neon
.type sha256_block_data_order_neon,%function
.global sha256_block_data_order_neon
.type sha256_block_data_order_neon,%function
sha256_block_data_order_neon:
.LNEON:
stmdb sp!,{r4-r12,lr}
sha256_block_data_order_neon:
.LNEON:
stmdb sp!,{r4-r12,lr}
sha256_block_data_order_armv8:
.LARMv8:
vld1.32 {$ABCD,$EFGH},[$ctx]
sha256_block_data_order_armv8:
.LARMv8:
vld1.32 {$ABCD,$EFGH},[$ctx]
-# elif defined(__thumb2__)
- adr $Ktbl,.LARMv8
- sub $Ktbl,$Ktbl,#.LARMv8-K256
-# else
- adrl $Ktbl,K256
-# endif
add $len,$inp,$len,lsl#6 @ len to point at the end of inp
add $len,$inp,$len,lsl#6 @ len to point at the end of inp
.Loop_v8:
vld1.8 {@MSG[0]-@MSG[1]},[$inp]!
vld1.8 {@MSG[2]-@MSG[3]},[$inp]!
.Loop_v8:
vld1.8 {@MSG[0]-@MSG[1]},[$inp]!
vld1.8 {@MSG[2]-@MSG[3]},[$inp]!