@@ -367,15 +367,15 @@
.align 6
-M0: .octa 0x0004080c0105090d02060a0e03070b0f
+SYM_DATA_LOCAL(M0, .octa 0x0004080c0105090d02060a0e03070b0f)
-M0SR: .octa 0x0004080c05090d010a0e02060f03070b
-SR: .octa 0x0f0e0d0c0a09080b0504070600030201
-SRM0: .octa 0x01060b0c0207080d0304090e00050a0f
+SYM_DATA_LOCAL(M0SR, .octa 0x0004080c05090d010a0e02060f03070b)
+SYM_DATA_LOCAL(SR, .octa 0x0f0e0d0c0a09080b0504070600030201)
+SYM_DATA_LOCAL(SRM0, .octa 0x01060b0c0207080d0304090e00050a0f)
-M0ISR: .octa 0x0004080c0d0105090a0e0206070b0f03
-ISR: .octa 0x0f0e0d0c080b0a090504070602010003
-ISRM0: .octa 0x0306090c00070a0d01040b0e0205080f
+SYM_DATA_LOCAL(M0ISR, .octa 0x0004080c0d0105090a0e0206070b0f03)
+SYM_DATA_LOCAL(ISR, .octa 0x0f0e0d0c080b0a090504070602010003)
+SYM_DATA_LOCAL(ISRM0, .octa 0x0306090c00070a0d01040b0e0205080f)
/*
* void aesbs_convert_key(u8 out[], u32 const rk[], int rounds)
@@ -47,6 +47,8 @@ my ($mac,$nonce)=($inp,$len);
my ($h0,$h1,$h2,$r0,$r1,$s1,$t0,$t1,$d0,$d1,$d2) = map("x$_",(4..14));
$code.=<<___;
+#include <linux/linkage.h>
+
#ifndef __KERNEL__
# include "arm_arch.h"
.extern OPENSSL_armcap_P
@@ -888,8 +890,10 @@ poly1305_blocks_neon:
.align 5
.Lzeros:
.long 0,0,0,0,0,0,0,0
+SYM_DATA_START_LOCAL(POLY1305_str)
.asciz "Poly1305 for ARMv8, CRYPTOGAMS by \@dot-asm"
.align 2
+SYM_DATA_END(POLY1305_str)
#if !defined(__KERNEL__) && !defined(_WIN64)
.comm OPENSSL_armcap_P,4,4
.hidden OPENSSL_armcap_P
@@ -193,6 +193,8 @@ ___
}
$code.=<<___;
+#include <linux/linkage.h>
+
#ifndef __KERNEL__
# include "arm_arch.h"
#endif
@@ -208,11 +210,11 @@ ___
$code.=<<___ if ($SZ==4);
#ifndef __KERNEL__
# ifdef __ILP32__
- ldrsw x16,.LOPENSSL_armcap_P
+ ldrsw x16,OPENSSL_armcap_P_rel
# else
- ldr x16,.LOPENSSL_armcap_P
+ ldr x16,OPENSSL_armcap_P_rel
# endif
- adr x17,.LOPENSSL_armcap_P
+ adr x17,OPENSSL_armcap_P_rel
add x16,x16,x17
ldr w16,[x16]
tst w16,#ARMV8_SHA256
@@ -237,7 +239,7 @@ $code.=<<___;
ldp $E,$F,[$ctx,#4*$SZ]
add $num,$inp,$num,lsl#`log(16*$SZ)/log(2)` // end of input
ldp $G,$H,[$ctx,#6*$SZ]
- adr $Ktbl,.LK$BITS
+ adr $Ktbl,K$BITS
stp $ctx,$num,[x29,#96]
.Loop:
@@ -287,8 +289,7 @@ $code.=<<___;
.size $func,.-$func
.align 6
-.type .LK$BITS,%object
-.LK$BITS:
+SYM_DATA_START_LOCAL(K$BITS)
___
$code.=<<___ if ($SZ==8);
.quad 0x428a2f98d728ae22,0x7137449123ef65cd
@@ -353,18 +354,21 @@ $code.=<<___ if ($SZ==4);
.long 0 //terminator
___
$code.=<<___;
-.size .LK$BITS,.-.LK$BITS
+SYM_DATA_END(K$BITS)
#ifndef __KERNEL__
.align 3
-.LOPENSSL_armcap_P:
+SYM_DATA_START_LOCAL(OPENSSL_armcap_P_rel)
# ifdef __ILP32__
.long OPENSSL_armcap_P-.
# else
.quad OPENSSL_armcap_P-.
# endif
+SYM_DATA_END(OPENSSL_armcap_P_rel)
#endif
+SYM_DATA_START_LOCAL(OPENSSL_str)
.asciz "SHA$BITS block transform for ARMv8, CRYPTOGAMS by <appro\@openssl.org>"
.align 2
+SYM_DATA_END(OPENSSL_str)
___
if ($SZ==4) {
@@ -385,7 +389,7 @@ sha256_block_armv8:
add x29,sp,#0
ld1.32 {$ABCD,$EFGH},[$ctx]
- adr $Ktbl,.LK256
+ adr $Ktbl,K256
.Loop_hw:
ld1 {@MSG[0]-@MSG[3]},[$inp],#64
@@ -646,7 +650,7 @@ sha256_block_neon:
.Lneon_entry:
sub sp,sp,#16*4
- adr $Ktbl,.LK256
+ adr $Ktbl,K256
add $num,$inp,$num,lsl#6 // len to point at the end of inp
ld1.8 {@X[0]},[$inp], #16