]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Restore correct registers in aarch64 AES-CTR code
authorJulian Andres Klode <julian.klode@canonical.com>
Sat, 18 Jan 2025 20:12:45 +0000 (21:12 +0100)
committerTomas Mraz <tomas@openssl.org>
Tue, 21 Jan 2025 09:55:56 +0000 (10:55 +0100)
Commit 1d1ca79fe35dbe5c05faed5a2ef8c4de9c5adc49 introduced
save and restore for the registers, saving them as

stp d8,d9,[sp, #16]
stp d10,d11,[sp, #32]
stp d12,d13,[sp, #48]
stp d14,d15,[sp, #64]

But the restore code was inadvertently typoed:

ldp d8,d9,[sp, #16]
ldp d10,d11,[sp, #32]
ldp d12,d13,[sp, #48]
ldp d15,d16,[sp, #64]

Restoring [sp, #64] into d15,d16 instead of d14,d15.

Fixes: #26466
CLA: trivial

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26469)

crypto/aes/asm/aesv8-armx.pl

index b2abcd1869f1a6060ac1f8d7951998eb01b7b554..84236977b02e73088f37307751bc6fbe65c9df8c 100755 (executable)
@@ -2509,7 +2509,7 @@ ${prefix}_ctr32_encrypt_blocks_unroll12_eor3:
        ldp             d8,d9,[sp, #16]
        ldp             d10,d11,[sp, #32]
        ldp             d12,d13,[sp, #48]
-       ldp             d15,d16,[sp, #64]
+       ldp             d14,d15,[sp, #64]
        ldr             x29,[sp],#80
        ret
 .size  ${prefix}_ctr32_encrypt_blocks_unroll12_eor3,.-${prefix}_ctr32_encrypt_blocks_unroll12_eor3