From 51997d3d44a9279508b16e9f3d5e2de173ece7c2 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Tue, 10 Jun 2008 09:35:26 -0700 Subject: Introduce likely/unlikely macros, use them in saa.c Introduce the likely() and unlikely() macros, as used in Linux. They are compiler-dependent hints that a particular boolean expression is likely to be true or false, respectively. Currently only implemented for gcc. --- compiler.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'compiler.h') diff --git a/compiler.h b/compiler.h index 01e11277..51f49838 100644 --- a/compiler.h +++ b/compiler.h @@ -110,4 +110,16 @@ char *strsep(char **, const char *); # define X86_MEMORY 0 #endif +/* + * Hints to the compiler that a particular branch of code is more or + * less likely to be taken. + */ +#if defined(__GNUC__) && __GNUC__ >= 3 +# define likely(x) __builtin_expect(!!(x), 1) +# define unlikely(x) __builtin_expect(!!(x), 0) +#else +# define likely(x) (!!(x)) +# define unlikely(x) (!!(x)) +#endif + #endif /* NASM_COMPILER_H */ -- cgit v1.2.1