[PATCH 06/11] gcm-aarch64-ce: clear volatile vector registers at setup function
Jussi Kivilinna <[email protected]>
| Newsgroups | gmane.comp.encryption.gpg.libgcrypt.devel |
|---|---|
| Message-ID | <[email protected]> |
* cipher/cipher-gcm-armv8-aarch64-ce.S (_gcry_ghash_setup_armv8_ce_pmull): Clear used vectors registers before function exit. -- Signed-off-by: Jussi Kivilinna <[email protected]> --- cipher/cipher-gcm-armv8-aarch64-ce.S | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/cipher/cipher-gcm-armv8-aarch64-ce.S b/cipher/cipher-gcm-armv8-aarch64-ce.S index 0c31a563..4cb63212 100644 --- a/cipher/cipher-gcm-armv8-aarch64-ce.S +++ b/cipher/cipher-gcm-armv8-aarch64-ce.S @@ -610,6 +610,7 @@ _gcry_ghash_setup_armv8_ce_pmull: /* H³ */ PMUL_128x128(rr0, rr1, rh2, rh1, t0, t1, __) REDUCTION(rh3, rr0, rr1, rrconst, t0, t1, __, __, __) + CLEAR_REG(rh1) /* H⁴ */ PMUL_128x128(rr0, rr1, rh2, rh2, t0, t1, __) @@ -622,9 +623,18 @@ _gcry_ghash_setup_armv8_ce_pmull: /* H⁶ */ PMUL_128x128(rr0, rr1, rh3, rh3, t0, t1, __) REDUCTION(rh6, rr0, rr1, rrconst, t0, t1, __, __, __) + CLEAR_REG(rr0) + CLEAR_REG(rr1) + CLEAR_REG(t0) + CLEAR_REG(t1) st1 {rh2.16b-rh4.16b}, [x1], #(3*16) + CLEAR_REG(rh2) + CLEAR_REG(rh3) + CLEAR_REG(rh4) st1 {rh5.16b-rh6.16b}, [x1] + CLEAR_REG(rh5) + CLEAR_REG(rh6) ret_spec_stop CFI_ENDPROC() -- 2.45.2 _______________________________________________ Gcrypt-devel mailing list [email protected] https://lists.gnupg.org/mailman/listinfo/gcrypt-devel