diff --git a/wolfcrypt/src/port/arm/armv8-mlkem-asm.S b/wolfcrypt/src/port/arm/armv8-mlkem-asm.S index 14010de903..fe2c9333c4 100644 --- a/wolfcrypt/src/port/arm/armv8-mlkem-asm.S +++ b/wolfcrypt/src/port/arm/armv8-mlkem-asm.S @@ -9765,6 +9765,7 @@ L_sha3_aarch64_r: .quad 0x8000000080008081,0x8000000000008080 .quad 0x0000000080000001,0x8000000080008008 #ifdef WOLFSSL_ARMASM_CRYPTO_SHA3 +.arch_extension sha3 #ifndef __APPLE__ .text .globl mlkem_sha3_blocksx3_crypto diff --git a/wolfcrypt/src/port/arm/armv8-mlkem-asm.asm b/wolfcrypt/src/port/arm/armv8-mlkem-asm.asm index d72216929d..dfa3802899 100644 --- a/wolfcrypt/src/port/arm/armv8-mlkem-asm.asm +++ b/wolfcrypt/src/port/arm/armv8-mlkem-asm.asm @@ -9216,6 +9216,7 @@ L_sha3_aarch64_r DCQ 0x8000000080008081, 0x8000000000008080 DCQ 0x0000000080000001, 0x8000000080008008 IF :DEF:WOLFSSL_ARMASM_CRYPTO_SHA3 +; .arch_extension sha3 AREA |.text|, CODE, READONLY ALIGN 4 EXPORT mlkem_sha3_blocksx3_crypto diff --git a/wolfcrypt/src/port/arm/armv8-mlkem-asm_c.c b/wolfcrypt/src/port/arm/armv8-mlkem-asm_c.c index 2b1f5b40b0..97986ef540 100644 --- a/wolfcrypt/src/port/arm/armv8-mlkem-asm_c.c +++ b/wolfcrypt/src/port/arm/armv8-mlkem-asm_c.c @@ -9124,6 +9124,7 @@ void mlkem_sha3_blocksx3_crypto(word64* state) { const word64* r = L_sha3_aarch64_r; __asm__ __volatile__ ( + ".arch_extension sha3\n\t" "stp x29, x30, [sp, #-64]!\n\t" "add x29, sp, #0\n\t" "str %x[state], [x29, #40]\n\t" @@ -9423,6 +9424,7 @@ void mlkem_shake128_blocksx3_seed_crypto(word64* state, byte* seed) { const word64* r = L_sha3_aarch64_r; __asm__ __volatile__ ( + ".arch_extension sha3\n\t" "stp x29, x30, [sp, #-64]!\n\t" "add x29, sp, #0\n\t" "str %x[state], [x29, #40]\n\t" @@ -9744,6 +9746,7 @@ void mlkem_shake256_blocksx3_seed_crypto(word64* state, byte* seed) { const word64* r = L_sha3_aarch64_r; __asm__ __volatile__ ( + ".arch_extension sha3\n\t" "stp x29, x30, [sp, #-64]!\n\t" "add x29, sp, #0\n\t" "str %x[state], [x29, #40]\n\t"