sha/asm/sha256-armv4.pl: one of "universal" flags combination didn't compile.
authorAndy Polyakov <appro@openssl.org>
Tue, 15 Dec 2015 20:43:56 +0000 (21:43 +0100)
committerAndy Polyakov <appro@openssl.org>
Mon, 21 Dec 2015 12:41:47 +0000 (13:41 +0100)
(and unify table address calculation in ARMv8 code path).

Reviewed-by: Tim Hudson <tjh@openssl.org>
crypto/sha/asm/sha256-armv4.pl

index b6b39dcbbb3f73bc9b9da3030e3693c872da114c..5e56992d8ef6d2be9de7a7df96f168c480e2e887 100644 (file)
@@ -178,7 +178,6 @@ $code=<<___;
 #if defined(__thumb2__)
 .syntax unified
 .thumb
-# define adrl adr
 #else
 .code   32
 #endif
@@ -469,7 +468,8 @@ $code.=<<___;
 
 .global        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-r12,lr}
@@ -606,16 +606,11 @@ $code.=<<___;
 sha256_block_data_order_armv8:
 .LARMv8:
        vld1.32 {$ABCD,$EFGH},[$ctx]
-# ifdef        __APPLE__
        sub     $Ktbl,$Ktbl,#256+32
-# 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
+       b       .Loop_v8
 
+.align 4
 .Loop_v8:
        vld1.8          {@MSG[0]-@MSG[1]},[$inp]!
        vld1.8          {@MSG[2]-@MSG[3]},[$inp]!