aboutsummaryrefslogtreecommitdiff
path: root/sys/crypto/openssl/aarch64/poly1305-armv8.S
diff options
context:
space:
mode:
Diffstat (limited to 'sys/crypto/openssl/aarch64/poly1305-armv8.S')
-rw-r--r--sys/crypto/openssl/aarch64/poly1305-armv8.S20
1 files changed, 14 insertions, 6 deletions
diff --git a/sys/crypto/openssl/aarch64/poly1305-armv8.S b/sys/crypto/openssl/aarch64/poly1305-armv8.S
index 8925984c3ee0..3e0ccf7ff0d2 100644
--- a/sys/crypto/openssl/aarch64/poly1305-armv8.S
+++ b/sys/crypto/openssl/aarch64/poly1305-armv8.S
@@ -41,10 +41,14 @@ poly1305_init:
tst w17,#ARMV7_NEON
- adr x12,.Lpoly1305_blocks
- adr x7,.Lpoly1305_blocks_neon
- adr x13,.Lpoly1305_emit
- adr x8,.Lpoly1305_emit_neon
+ adrp x12,poly1305_blocks
+ add x12,x12,#:lo12:.Lpoly1305_blocks
+ adrp x7,poly1305_blocks_neon
+ add x7,x7,#:lo12:.Lpoly1305_blocks_neon
+ adrp x13,poly1305_emit
+ add x13,x13,#:lo12:.Lpoly1305_emit
+ adrp x8,poly1305_emit_neon
+ add x8,x8,#:lo12:.Lpoly1305_emit_neon
csel x12,x12,x7,eq
csel x13,x13,x8,eq
@@ -374,7 +378,8 @@ poly1305_blocks_neon:
ldr x30,[sp,#8]
add x16,x1,#32
- adr x17,.Lzeros
+ adrp x17,.Lzeros
+ add x17,x17,#:lo12:.Lzeros
subs x2,x2,#64
csel x16,x17,x16,lo
@@ -386,7 +391,8 @@ poly1305_blocks_neon:
.align 4
.Leven_neon:
add x16,x1,#32
- adr x17,.Lzeros
+ adrp x17,.Lzeros
+ add x17,x17,#:lo12:.Lzeros
subs x2,x2,#64
csel x16,x17,x16,lo
@@ -869,6 +875,8 @@ poly1305_emit_neon:
ret
.size poly1305_emit_neon,.-poly1305_emit_neon
+.section .rodata
+
.align 5
.Lzeros:
.long 0,0,0,0,0,0,0,0