From: Liu-ErMeng Date: Fri, 13 Mar 2026 09:29:28 +0000 (-0700) Subject: Fix vpsm4_ex-armv8.pl implementation bug X-Git-Tag: openssl-4.0.0~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bda2782565aa9d720d9010bbc03a70302848417;p=thirdparty%2Fopenssl.git Fix vpsm4_ex-armv8.pl implementation bug Load .Lsbox_magic base once via adrp+add and use plain immediate offsets for q loads, avoiding potential low-12-bit truncation issues with #:lo12:symbol+offset. Reviewed-by: Paul Dale Reviewed-by: Tomas Mraz MergeDate: Tue Mar 24 17:36:51 2026 (Merged from https://github.com/openssl/openssl/pull/30410) (cherry picked from commit 97e9561471057d6ffe4db098753208b6cad92ece) --- diff --git a/crypto/sm4/asm/vpsm4_ex-armv8.pl b/crypto/sm4/asm/vpsm4_ex-armv8.pl index e8e33735852..eac5a0f6a1d 100644 --- a/crypto/sm4/asm/vpsm4_ex-armv8.pl +++ b/crypto/sm4/asm/vpsm4_ex-armv8.pl @@ -476,12 +476,13 @@ sub load_sbox () { $code.=<<___; adrp $xtmp2, .Lsbox_magic - ldr $MaskQ, [$xtmp2, #:lo12:.Lsbox_magic] - ldr $TAHMatQ, [$xtmp2, #:lo12:.Lsbox_magic+16] - ldr $TALMatQ, [$xtmp2, #:lo12:.Lsbox_magic+32] - ldr $ATAHMatQ, [$xtmp2, #:lo12:.Lsbox_magic+48] - ldr $ATALMatQ, [$xtmp2, #:lo12:.Lsbox_magic+64] - ldr $ANDMaskQ, [$xtmp2, #:lo12:.Lsbox_magic+80] + add $xtmp2, $xtmp2, #:lo12:.Lsbox_magic + ldr $MaskQ, [$xtmp2] + ldr $TAHMatQ, [$xtmp2, 16] + ldr $TALMatQ, [$xtmp2, 32] + ldr $ATAHMatQ, [$xtmp2, 48] + ldr $ATALMatQ, [$xtmp2, 64] + ldr $ANDMaskQ, [$xtmp2, 80] ___ }