* cipher/camellia-simd128.h [__powerpc__] (clear_vec_regs): New. [__ARM_NEON]: Include 'simd-common-aarch64.h'. [__ARM_NEON] (memory_barrier_with_vec): Remove. [__x86_64__] (clear_vec_regs): New. (FUNC_ENC_BLK16, FUNC_DEC_BLK16, FUNC_KEY_SETUP): Add clear_vec_regs. --
Signed-off-by: Jussi Kivilinna <jussi.kivili...@iki.fi> --- cipher/camellia-simd128.h | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/cipher/camellia-simd128.h b/cipher/camellia-simd128.h index ed26afb7..120fbe5a 100644 --- a/cipher/camellia-simd128.h +++ b/cipher/camellia-simd128.h @@ -152,6 +152,7 @@ static const uint8x16_t shift_row = #define if_not_aes_subbytes(...) /*_*/ #define memory_barrier_with_vec(a) __asm__("" : "+wa"(a) :: "memory") +#define clear_vec_regs() ((void)0) #endif /* __powerpc__ */ @@ -160,6 +161,7 @@ static const uint8x16_t shift_row = /********************************************************************** AT&T x86 asm to intrinsics conversion macros (ARMv8-CE) **********************************************************************/ +#include "simd-common-aarch64.h" #include <arm_neon.h> #define __m128i uint64x2_t @@ -232,8 +234,6 @@ static const uint8x16_t shift_row = #define if_aes_subbytes(...) /*_*/ #define if_not_aes_subbytes(...) __VA_ARGS__ -#define memory_barrier_with_vec(a) __asm__("" : "+w"(a) :: "memory") - #endif /* __ARM_NEON */ #if defined(__x86_64__) || defined(__i386__) @@ -307,6 +307,7 @@ static const uint8x16_t shift_row = #define if_not_aes_subbytes(...) __VA_ARGS__ #define memory_barrier_with_vec(a) __asm__("" : "+x"(a) :: "memory") +#define clear_vec_regs() ((void)0) #endif /* defined(__x86_64__) || defined(__i386__) */ @@ -1123,6 +1124,8 @@ FUNC_ENC_BLK16(const void *key_table, void *vout, const void *vin, write_output(x7, x6, x5, x4, x3, x2, x1, x0, x15, x14, x13, x12, x11, x10, x9, x8, out); + + clear_vec_regs(); } /* Decrypts 16 input block from IN and writes result to OUT. IN and OUT may @@ -1193,6 +1196,8 @@ FUNC_DEC_BLK16(const void *key_table, void *vout, const void *vin, write_output(x7, x6, x5, x4, x3, x2, x1, x0, x15, x14, x13, x12, x11, x10, x9, x8, out); + + clear_vec_regs(); } /********* Key setup **********************************************************/ @@ -2232,4 +2237,6 @@ FUNC_KEY_SETUP(void *key_table, const void *vkey, unsigned int keylen) } camellia_setup256(key_table, x0, x1); + + clear_vec_regs(); } -- 2.45.2 _______________________________________________ Gcrypt-devel mailing list Gcrypt-devel@gnupg.org https://lists.gnupg.org/mailman/listinfo/gcrypt-devel