mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-29 13:20:21 +00:00
Introduce MBEDTLS_ASSUME
Signed-off-by: Dave Rodgman <dave.rodgman@arm.com>
This commit is contained in:
parent
afc6a992c5
commit
fb24a8425a
@ -318,6 +318,21 @@ static inline void mbedtls_xor_no_simd(unsigned char *r,
|
||||
#define MBEDTLS_UNLIKELY(x) x
|
||||
#endif
|
||||
|
||||
#if defined(__has_builtin)
|
||||
#if __has_builtin(__builtin_assume)
|
||||
/* MBEDTLS_ASSUME may be used to provide additional information to the compiler
|
||||
* which can result in smaller code-size. */
|
||||
#define MBEDTLS_ASSUME(x) __builtin_assume(x)
|
||||
// clang provides __builtin_assume
|
||||
#elif __has_builtin(__builtin_unreachable)
|
||||
#define MBEDTLS_ASSUME(x) do { if (!(x)) __builtin_unreachable(); } while (0)
|
||||
// For gcc, use __builtin_unreachable
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(MBEDTLS_ASSUME)
|
||||
#define MBEDTLS_ASSUME(x)
|
||||
#endif
|
||||
|
||||
#if defined(__GNUC__) && !defined(__ARMCC_VERSION) && !defined(__clang__) \
|
||||
&& !defined(__llvm__) && !defined(__INTEL_COMPILER)
|
||||
/* Defined if the compiler really is gcc and not clang, etc */
|
||||
|
Loading…
x
Reference in New Issue
Block a user