Add LIKELY/UNLIKELY macros for general use, replacing s390x-specific
versions. See #271504. (Florian Krohm, britzel@acm.org)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2150 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/main_util.h b/priv/main_util.h
index ca63d8c..32afb7e 100644
--- a/priv/main_util.h
+++ b/priv/main_util.h
@@ -43,13 +43,15 @@
#define NULL ((void*)0)
+#define LIKELY(x) __builtin_expect(!!(x), 1)
+#define UNLIKELY(x) __builtin_expect(!!(x), 0)
/* Stuff for panicking and assertion. */
#define VG__STRING(__str) #__str
#define vassert(expr) \
- ((void) ((expr) ? 0 : \
+ ((void) (LIKELY(expr) ? 0 : \
(vex_assert_fail (VG__STRING(expr), \
__FILE__, __LINE__, \
__PRETTY_FUNCTION__), 0)))