diff options
author | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2023-03-02 11:48:15 +0200 |
---|---|---|
committer | Jussi Kivilinna <jussi.kivilinna@iki.fi> | 2023-03-02 11:48:27 +0200 |
commit | 652598096325c2478d7d033585dadc13bec6fb1d (patch) | |
tree | 9d174007b9229e7dcb9ba00fb5e073e92b62652f | |
parent | 0a5f7e9543a823034f6dd6dae2f647c4e213f213 (diff) | |
download | libgcrypt-652598096325c2478d7d033585dadc13bec6fb1d.tar.gz |
chacha20-ppc: do not generate p9 code when target attr unavailable
* cipher/chacha20-ppc.c (HAVE_FUNC_ATTR_TARGET): New.
(_gcry_chacha20_ppc9_blocks1, _gcry_chacha20_ppc9_blocks4)
(_gcry_chacha20_poly1305_ppc8_blocks4): Use inline functions
only if HAVE_FUNC_ATTR_TARGET is defined.
--
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>
-rw-r--r-- | cipher/chacha20-ppc.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/cipher/chacha20-ppc.c b/cipher/chacha20-ppc.c index f135a32f..994b6a01 100644 --- a/cipher/chacha20-ppc.c +++ b/cipher/chacha20-ppc.c @@ -660,12 +660,15 @@ chacha20_poly1305_ppc_blocks4(u32 *state, byte *dst, const byte *src, #if defined(__clang__) && defined(HAVE_CLANG_ATTRIBUTE_PPC_TARGET) # define FUNC_ATTR_TARGET_P8 __attribute__((target("arch=pwr8"))) # define FUNC_ATTR_TARGET_P9 __attribute__((target("arch=pwr9"))) +# define HAVE_FUNC_ATTR_TARGET 1 #elif defined(HAVE_GCC_ATTRIBUTE_PPC_TARGET) # define FUNC_ATTR_TARGET_P8 __attribute__((target("cpu=power8"))) # define FUNC_ATTR_TARGET_P9 __attribute__((target("cpu=power9"))) +# define HAVE_FUNC_ATTR_TARGET 1 #else # define FUNC_ATTR_TARGET_P8 # define FUNC_ATTR_TARGET_P9 +# undef HAVE_FUNC_ATTR_TARGET #endif @@ -693,7 +696,7 @@ _gcry_chacha20_poly1305_ppc8_blocks4(u32 *state, byte *dst, const byte *src, poly1305_src); } -#ifdef HAVE_GCC_ATTRIBUTE_PPC_TARGET +#ifdef HAVE_FUNC_ATTR_TARGET /* Functions targetting POWER9. */ unsigned int ASM_FUNC_ATTR FUNC_ATTR_TARGET_P9 FUNC_ATTR_OPT_O2 _gcry_chacha20_ppc9_blocks1(u32 *state, byte *dst, const byte *src, |