[PATCH 3/6] rijndael-riscv-zvkned: optimize aes192 key setup
Jussi Kivilinna <[email protected]> Mon, 29 Dec 2025 20:01:36 +0200
| Newsgroups | gmane.comp.encryption.gpg.libgcrypt.devel |
|---|---|
| Message-ID | <[email protected]> |
* 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 <[email protected]> --- 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