diff options
Diffstat (limited to 'sys/crypto/openssl/aarch64/poly1305-armv8.S')
| -rw-r--r-- | sys/crypto/openssl/aarch64/poly1305-armv8.S | 20 |
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 |
