From d5995c0b31900e33301c3f83f267bbb2fe2ee113 Mon Sep 17 00:00:00 2001 From: jsing <> Date: Thu, 7 May 2026 15:41:37 +0000 Subject: Use defines for symbol offsets in aarch64 assembly. These also very between platforms. ok kenjiro@ tb@ --- src/lib/libcrypto/crypto_assembly.h | 7 ++++++- src/lib/libcrypto/sha/sha256_aarch64_ce.S | 6 +++--- src/lib/libcrypto/sha/sha512_aarch64_ce.S | 6 +++--- 3 files changed, 12 insertions(+), 7 deletions(-) (limited to 'src/lib') diff --git a/src/lib/libcrypto/crypto_assembly.h b/src/lib/libcrypto/crypto_assembly.h index b291de4f17..22102d3fac 100644 --- a/src/lib/libcrypto/crypto_assembly.h +++ b/src/lib/libcrypto/crypto_assembly.h @@ -1,4 +1,4 @@ -/* $OpenBSD: crypto_assembly.h,v 1.3 2026/05/07 15:40:33 jsing Exp $ */ +/* $OpenBSD: crypto_assembly.h,v 1.4 2026/05/07 15:41:37 jsing Exp $ */ /* * Copyright (c) 2026 Joel Sing * @@ -37,10 +37,15 @@ #define CRYPTO_ASSEMBLY_SECTION_TEXT __TEXT,__text #define CRYPTO_ASSEMBLY_SECTION_RODATA __DATA,__const +#define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name@PAGE +#define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) name@PAGEOFF + #else #define CRYPTO_ASSEMBLY_SECTION_TEXT .text #define CRYPTO_ASSEMBLY_SECTION_RODATA .rodata +#define CRYPTO_ASSEMBLY_AARCH64_SYM_HI(name) name +#define CRYPTO_ASSEMBLY_AARCH64_SYM_LO(name) :lo12:name #endif #endif diff --git a/src/lib/libcrypto/sha/sha256_aarch64_ce.S b/src/lib/libcrypto/sha/sha256_aarch64_ce.S index aef164ebe9..c08ba27e9f 100644 --- a/src/lib/libcrypto/sha/sha256_aarch64_ce.S +++ b/src/lib/libcrypto/sha/sha256_aarch64_ce.S @@ -1,4 +1,4 @@ -/* $OpenBSD: sha256_aarch64_ce.S,v 1.8 2026/05/07 15:40:33 jsing Exp $ */ +/* $OpenBSD: sha256_aarch64_ce.S,v 1.9 2026/05/07 15:41:37 jsing Exp $ */ /* * Copyright (c) 2023,2025 Joel Sing * @@ -107,8 +107,8 @@ sha256_block_ce: /* Address of SHA-256 constants. */ - adrp k256_base, K256 - add k256_base, k256_base, :lo12:K256 + adrp k256_base, CRYPTO_ASSEMBLY_AARCH64_SYM_HI(K256) + add k256_base, k256_base, CRYPTO_ASSEMBLY_AARCH64_SYM_LO(K256) /* * Load current hash state from context. diff --git a/src/lib/libcrypto/sha/sha512_aarch64_ce.S b/src/lib/libcrypto/sha/sha512_aarch64_ce.S index a5adae1b38..af59706258 100644 --- a/src/lib/libcrypto/sha/sha512_aarch64_ce.S +++ b/src/lib/libcrypto/sha/sha512_aarch64_ce.S @@ -1,4 +1,4 @@ -/* $OpenBSD: sha512_aarch64_ce.S,v 1.6 2026/05/07 15:40:33 jsing Exp $ */ +/* $OpenBSD: sha512_aarch64_ce.S,v 1.7 2026/05/07 15:41:37 jsing Exp $ */ /* * Copyright (c) 2023,2025 Joel Sing * @@ -181,8 +181,8 @@ sha512_block_ce: st4 {v12.d, v13.d, v14.d, v15.d}[0], [sp] /* Address of SHA-512 constants. */ - adrp k512_base, K512 - add k512_base, k512_base, :lo12:K512 + adrp k512_base, CRYPTO_ASSEMBLY_AARCH64_SYM_HI(K512) + add k512_base, k512_base, CRYPTO_ASSEMBLY_AARCH64_SYM_LO(K512) /* * Load current hash state from context. -- cgit v1.2.3-55-g6feb