[PATCH 04/11] sm4-aarch64-ce: clear volatile vector registers

Jussi Kivilinna <[email protected]>
Newsgroups gmane.comp.encryption.gpg.libgcrypt.devel
Message-ID <[email protected]>
* cipher/sm4-armv8-aarch64-ce.S (_gcry_sm4_armv8_ce_expand_key)
(_gcry_sm4_armv8_ce_crypt_blk1_8, _gcry_sm4_armv8_ce_crypt)
(_gcry_sm4_armv8_ce_cbc_dec, _gcry_sm4_armv8_ce_cfb_dec)
(_gcry_sm4_armv8_ce_ctr_enc, _gcry_sm4_armv8_ce_xts_crypt): Add
CLEAR_ALL_REGS.
--

Signed-off-by: Jussi Kivilinna <[email protected]>
---
 cipher/sm4-armv8-aarch64-ce.S | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/cipher/sm4-armv8-aarch64-ce.S b/cipher/sm4-armv8-aarch64-ce.S
index eea56cdf..01f3df92 100644
--- a/cipher/sm4-armv8-aarch64-ce.S
+++ b/cipher/sm4-armv8-aarch64-ce.S
@@ -290,6 +290,7 @@ _gcry_sm4_armv8_ce_expand_key:
     st1 {v1.16b}, [x2], #16;
     st1 {v0.16b}, [x2];
 
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_expand_key,.-_gcry_sm4_armv8_ce_expand_key;)
@@ -383,6 +384,7 @@ _gcry_sm4_armv8_ce_crypt_blk1_8:
     st1 {v7.16b}, [x1];
 
 .Lblk8_store_output_done:
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_crypt_blk1_8,.-_gcry_sm4_armv8_ce_crypt_blk1_8;)
@@ -416,6 +418,7 @@ _gcry_sm4_armv8_ce_crypt:
     b .Lcrypt_loop_blk;
 
 .Lcrypt_end:
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_crypt,.-_gcry_sm4_armv8_ce_crypt;)
@@ -468,6 +471,7 @@ _gcry_sm4_armv8_ce_cbc_dec:
     /* store new IV */
     st1 {RIV.16b}, [x3];
 
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_cbc_dec,.-_gcry_sm4_armv8_ce_cbc_dec;)
@@ -520,6 +524,7 @@ _gcry_sm4_armv8_ce_cfb_dec:
     /* store new IV */
     st1 {v0.16b}, [x3];
 
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_cfb_dec,.-_gcry_sm4_armv8_ce_cfb_dec;)
@@ -588,6 +593,7 @@ _gcry_sm4_armv8_ce_ctr_enc:
     rev x8, x8;
     stp x7, x8, [x3];
 
+    CLEAR_ALL_REGS();
     ret_spec_stop;
     CFI_ENDPROC();
 ELF(.size _gcry_sm4_armv8_ce_ctr_enc,.-_gcry_sm4_armv8_ce_ctr_enc;)
@@ -713,17 +719,8 @@ _gcry_sm4_armv8_ce_xts_crypt:
     /* store new tweak */
     st1         {v8.16b}, [x3]
 
-    CLEAR_REG(v8)
-    CLEAR_REG(v9)
-    CLEAR_REG(v10)
-    CLEAR_REG(v11)
-    CLEAR_REG(v12)
-    CLEAR_REG(v13)
-    CLEAR_REG(v14)
-    CLEAR_REG(v15)
-    CLEAR_REG(RIV)
-
     VPOP_ABI
+    CLEAR_ALL_REGS();
     ret_spec_stop
     CFI_ENDPROC()
 ELF(.size _gcry_sm4_armv8_ce_xts_crypt,.-_gcry_sm4_armv8_ce_xts_crypt;)
-- 
2.45.2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.