mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-31 19:21:18 +00:00
Simplify use of __has_builtin
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
parent
90c8ac2205
commit
9ba640d318
@ -306,37 +306,35 @@ static inline void mbedtls_xor_no_simd(unsigned char *r,
|
|||||||
#define MBEDTLS_STATIC_ASSERT(expr, msg)
|
#define MBEDTLS_STATIC_ASSERT(expr, msg)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Define compiler branch hints */
|
|
||||||
#if defined(__has_builtin)
|
#if defined(__has_builtin)
|
||||||
#if __has_builtin(__builtin_expect)
|
#define MBEDTLS_HAS_BUILTIN(x) __has_builtin(x)
|
||||||
|
#else
|
||||||
|
#define MBEDTLS_HAS_BUILTIN(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define compiler branch hints */
|
||||||
|
#if MBEDTLS_HAS_BUILTIN(__builtin_expect)
|
||||||
#define MBEDTLS_LIKELY(x) __builtin_expect(!!(x), 1)
|
#define MBEDTLS_LIKELY(x) __builtin_expect(!!(x), 1)
|
||||||
#define MBEDTLS_UNLIKELY(x) __builtin_expect(!!(x), 0)
|
#define MBEDTLS_UNLIKELY(x) __builtin_expect(!!(x), 0)
|
||||||
#endif
|
#else
|
||||||
#endif
|
|
||||||
#if !defined(MBEDTLS_LIKELY)
|
|
||||||
#define MBEDTLS_LIKELY(x) x
|
#define MBEDTLS_LIKELY(x) x
|
||||||
#define MBEDTLS_UNLIKELY(x) x
|
#define MBEDTLS_UNLIKELY(x) x
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* MBEDTLS_ASSUME may be used to provide additional information to the compiler
|
/* MBEDTLS_ASSUME may be used to provide additional information to the compiler
|
||||||
* which can result in smaller code-size. */
|
* which can result in smaller code-size. */
|
||||||
#if defined(__has_builtin)
|
#if MBEDTLS_HAS_BUILTIN(__builtin_assume)
|
||||||
#if __has_builtin(__builtin_assume)
|
|
||||||
/* clang provides __builtin_assume */
|
/* clang provides __builtin_assume */
|
||||||
#define MBEDTLS_ASSUME(x) __builtin_assume(x)
|
#define MBEDTLS_ASSUME(x) __builtin_assume(x)
|
||||||
#elif __has_builtin(__builtin_unreachable)
|
#elif MBEDTLS_HAS_BUILTIN(__builtin_unreachable)
|
||||||
/* gcc can use __builtin_unreachable */
|
/* gcc can use __builtin_unreachable */
|
||||||
#define MBEDTLS_ASSUME(x) do { if (!(x)) __builtin_unreachable(); } while (0)
|
#define MBEDTLS_ASSUME(x) do { if (!(x)) __builtin_unreachable(); } while (0)
|
||||||
#endif
|
#elif defined(_MSC_VER)
|
||||||
#endif
|
|
||||||
#if !defined(MBEDTLS_ASSUME)
|
|
||||||
#if defined(_MSC_VER)
|
|
||||||
/* Supported by MSVC since VS 2005 */
|
/* Supported by MSVC since VS 2005 */
|
||||||
#define MBEDTLS_ASSUME(x) __assume(x)
|
#define MBEDTLS_ASSUME(x) __assume(x)
|
||||||
#else
|
#else
|
||||||
#define MBEDTLS_ASSUME(x) do { } while (0)
|
#define MBEDTLS_ASSUME(x) do { } while (0)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
|
#if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
|
||||||
&& !defined(__llvm__) && !defined(__INTEL_COMPILER)
|
&& !defined(__llvm__) && !defined(__INTEL_COMPILER)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user