mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 19:43:32 +00:00
c776a32f75
This change might cause ABI breakages for /opt/cosmos. It's needed to help us better conform to header declaration practices.
23 lines
699 B
C
23 lines
699 B
C
#ifndef COSMOPOLITAN_LIBC_BITS_LIKELY_H_
|
|
#define COSMOPOLITAN_LIBC_BITS_LIKELY_H_
|
|
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
|
#ifdef _COSMO_SOURCE
|
|
|
|
#define LIKELY(x) __builtin_expect(!!(x), 1)
|
|
#define UNLIKELY(x) __builtin_expect(!!(x), 0)
|
|
|
|
#if __GNUC__ + 0 >= 9 && !defined(__chibicc__)
|
|
#define VERY_LIKELY(x) __builtin_expect_with_probability(!!(x), 1, 0.999)
|
|
#else
|
|
#define VERY_LIKELY(x) LIKELY(x)
|
|
#endif
|
|
|
|
#if __GNUC__ + 0 >= 9 && !defined(__chibicc__)
|
|
#define VERY_UNLIKELY(x) __builtin_expect_with_probability(!!(x), 0, 0.999)
|
|
#else
|
|
#define VERY_UNLIKELY(x) UNLIKELY(x)
|
|
#endif
|
|
|
|
#endif /* _COSMO_SOURCE */
|
|
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
|
#endif /* COSMOPOLITAN_LIBC_BITS_LIKELY_H_ */
|