[PATCH 3/6] rijndael-riscv-zvkned: optimize aes192 key setup

Jussi Kivilinna jussi.kivilinna at iki.fi
Mon Dec 29 19:01:36 CET 2025


* cipher/rijndael-riscv-zvkned.c (AES192_KF1_GEN): Avoid use of
stack array for loading scalar value to vector register.
--

Signed-off-by: Jussi Kivilinna <jussi.kivilinna at iki.fi>
---
 cipher/rijndael-riscv-zvkned.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/cipher/rijndael-riscv-zvkned.c b/cipher/rijndael-riscv-zvkned.c
index e3ba6769..703950e1 100644
--- a/cipher/rijndael-riscv-zvkned.c
+++ b/cipher/rijndael-riscv-zvkned.c
@@ -207,10 +207,8 @@ aes192_riscv_setkey (RIJNDAEL_context *ctx, const byte *key)
 
 #define AES192_KF1_GEN(out, input, round192, vl) \
   ({ \
-      u32 temp_array[4] = { 0, 0, 0, 0 }; \
-      vuint32m1_t temp_vec; \
-      temp_array[3] = (input); \
-      temp_vec = __riscv_vle32_v_u32m1(temp_array, (vl)); \
+      vuint32m1_t temp_vec = __riscv_vmv_v_x_u32m1(0, (vl)); \
+      temp_vec = __riscv_vslide1down_vx_u32m1(temp_vec, (input), (vl)); \
       temp_vec = __riscv_vaeskf1_vi_u32m1(temp_vec, (round192), (vl)); \
       (out) = __riscv_vmv_x_s_u32m1_u32(temp_vec); \
   })
-- 
2.51.0




More information about the Gcrypt-devel mailing list