From f96fbdb7d15a3aa6a735856c7bcf5ce082ca4b9b Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Wed, 11 Nov 2020 13:44:26 -0600 Subject: [PATCH] sha256.c/sha512.c: refactor 4 instances of gccism ({}) to WC_INLINE functions. --- wolfcrypt/src/sha256.c | 39 +++++++++++++++++++++------------------ wolfcrypt/src/sha512.c | 41 ++++++++++++++++++----------------------- 2 files changed, 39 insertions(+), 41 deletions(-) diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c index a61da0081..081917461 100644 --- a/wolfcrypt/src/sha256.c +++ b/wolfcrypt/src/sha256.c @@ -313,24 +313,27 @@ static int InitSha256(wc_Sha256* sha256) static word32 intel_flags; static int Transform_Sha256_is_vectorized = 0; - #define XTRANSFORM(S, D) ({ \ - int _ret; \ - if (Transform_Sha256_is_vectorized) \ - SAVE_VECTOR_REGISTERS(); \ - _ret = (*Transform_Sha256_p)((S),(D)); \ - if (Transform_Sha256_is_vectorized) \ - RESTORE_VECTOR_REGISTERS(); \ - _ret; \ - }) - #define XTRANSFORM_LEN(S, D, L) ({ \ - int _ret; \ - if (Transform_Sha256_is_vectorized) \ - SAVE_VECTOR_REGISTERS(); \ - _ret = (*Transform_Sha256_Len_p)((S),(D),(L)); \ - if (Transform_Sha256_is_vectorized) \ - RESTORE_VECTOR_REGISTERS(); \ - _ret; \ - }) + static WC_INLINE int inline_XTRANSFORM(wc_Sha256* S, const byte* D) { + int ret; + if (Transform_Sha256_is_vectorized) + SAVE_VECTOR_REGISTERS(); + ret = (*Transform_Sha256_p)(S, D); + if (Transform_Sha256_is_vectorized) + RESTORE_VECTOR_REGISTERS(); + return ret; + } +#define XTRANSFORM(...) inline_XTRANSFORM(__VA_ARGS__) + + static WC_INLINE int inline_XTRANSFORM_LEN(wc_Sha256* S, const byte* D, word32 L) { + int ret; + if (Transform_Sha256_is_vectorized) + SAVE_VECTOR_REGISTERS(); + ret = (*Transform_Sha256_Len_p)(S, D, L); + if (Transform_Sha256_is_vectorized) + RESTORE_VECTOR_REGISTERS(); + return ret; + } +#define XTRANSFORM_LEN(...) inline_XTRANSFORM_LEN(__VA_ARGS__) static void Sha256_SetTransform(void) { diff --git a/wolfcrypt/src/sha512.c b/wolfcrypt/src/sha512.c index aa0df73f9..75f356894 100644 --- a/wolfcrypt/src/sha512.c +++ b/wolfcrypt/src/sha512.c @@ -338,30 +338,25 @@ static int InitSha512(wc_Sha512* sha512) static int transform_check = 0; static int intel_flags; static int Transform_Sha512_is_vectorized = 0; -#if 0 - #define Transform_Sha512(sha512) (*Transform_Sha512_p)(sha512) - #define Transform_Sha512_Len(sha512, len) \ - (*Transform_Sha512_Len_p)(sha512, len) -#endif - #define Transform_Sha512(sha512) ({ \ - int _ret; \ - if (Transform_Sha512_is_vectorized) \ - SAVE_VECTOR_REGISTERS(); \ - _ret = (*Transform_Sha512_p)(sha512); \ - if (Transform_Sha512_is_vectorized) \ - RESTORE_VECTOR_REGISTERS(); \ - _ret; \ - }) -#define Transform_Sha512_Len(sha512, len) ({ \ - int _ret; \ - if (Transform_Sha512_is_vectorized) \ - SAVE_VECTOR_REGISTERS(); \ - _ret = (*Transform_Sha512_Len_p)(sha512, len); \ - if (Transform_Sha512_is_vectorized) \ - RESTORE_VECTOR_REGISTERS(); \ - _ret; \ - }) + static WC_INLINE int Transform_Sha512(wc_Sha512 *sha512) { + int ret; + if (Transform_Sha512_is_vectorized) + SAVE_VECTOR_REGISTERS(); + ret = (*Transform_Sha512_p)(sha512); + if (Transform_Sha512_is_vectorized) + RESTORE_VECTOR_REGISTERS(); + return ret; + } + static WC_INLINE int Transform_Sha512_Len(wc_Sha512 *sha512, word32 len) { + int ret; + if (Transform_Sha512_is_vectorized) + SAVE_VECTOR_REGISTERS(); + ret = (*Transform_Sha512_Len_p)(sha512, len); + if (Transform_Sha512_is_vectorized) + RESTORE_VECTOR_REGISTERS(); + return ret; + } static void Sha512_SetTransform(void) {