]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix vpsm4_ex-armv8.pl implementation bug
authorLiu-ErMeng <liuermeng2@huawei.com>
Fri, 13 Mar 2026 09:29:28 +0000 (02:29 -0700)
committerTomas Mraz <tomas@openssl.foundation>
Tue, 24 Mar 2026 17:37:01 +0000 (18:37 +0100)
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 <paul.dale@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
MergeDate: Tue Mar 24 17:36:51 2026
(Merged from https://github.com/openssl/openssl/pull/30410)

(cherry picked from commit 97e9561471057d6ffe4db098753208b6cad92ece)

crypto/sm4/asm/vpsm4_ex-armv8.pl

index e8e33735852ec7345ba14ecaf62e5b5b947632da..eac5a0f6a1d81a6d19cd46d697a601c545f4337f 100644 (file)
@@ -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]
 ___
 }